<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
    <title>PHPXRef 0.7.1 : Tomato Project : /core/v0.1/z/z.class.php source</title>
    <link rel="stylesheet" href="../../../sample.css" type="text/css">
    <link rel="stylesheet" href="../../../sample-print.css" type="text/css" media="print">
    <style id="hilight" type="text/css"></style>
    <meta http-equiv="content-type" content="text/html;charset=UTF-8">
</head>
<body bgcolor="#ffffff" text="#000000" link="#801800" vlink="#300540" alink="#ffffff">
<table class="pagetitle" width="100%">
	<tr>
        <td valign="top" class="pagetitle">
            [ <a href="../../../index.html">Index</a> ] 
			&nbsp;&nbsp;&nbsp; [<a href="../../../_classes/index.html">Classes</a>] 
			&nbsp;&nbsp;&nbsp; [<a href="../../../_functions/index.html">Functions</a>] 
			&nbsp;&nbsp;&nbsp; [<a href="../../../_variables/index.html">Variables</a>] 
			&nbsp;&nbsp;&nbsp; [<a href="../../../_constants/index.html">Constants</a>] 
			&nbsp;&nbsp;&nbsp; [<a href="../../../_tables/index.html">Tables</a>]
        </td>
        <td align="right" class="pagetitle">
		    <h2 style="margin-bottom: 0px">PHP Cross Reference of Tomato Project</h2>
	    </td>
    </tr>
</table>


<!-- Generated by PHPXref 0.7.1 at Thu Sep 10 15:54:52 2020 -->
<!-- PHPXref (c) 2000-2010 Gareth Watts - gareth@omnipotent.net -->
<!-- http://phpxref.sourceforge.net/ -->

<script src="../../../phpxref.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">
<!--
ext='.html';
relbase='../../../';
subdir='core/v0.1/z';
filename='z.class.php.source.html';
cookiekey='phpxref';
handleNavFrame(relbase, subdir, filename);

// -->
</script>
<script language="JavaScript" type="text/javascript">
if (gwGetCookie('xrefnav')=='off')
  document.write('<p class="navlinks">[ <a href="javascript:navOn()">Show Explorer<\/a> ]<\/p>');
else
  document.write('<p class="navlinks">[ <a href="javascript:navOff()">Hide Explorer<\/a> ]<\/p>');
</script>
<noscript>
<p class="navlinks">
[ <a href="../../../nav.html" target="_top">Show Explorer</a> ]
[ <a href="index.html" target="_top">Hide Navbar</a> ]
</p>
</noscript>
<script language="JavaScript" type="text/javascript">
<!--

document.writeln('<table align="right" class="searchbox-link"><tr><td><a class="searchbox-link" href="javascript:void(0)" onMouseOver="showSearchBox()">Search</a><br>');
document.writeln('<table border="0" cellspacing="0" cellpadding="0" class="searchbox" id="searchbox">');
document.writeln('<tr><td class="searchbox-title">');
document.writeln('<a class="searchbox-title" href="javascript:showSearchPopup()">Search History +</a>');
document.writeln('<\/td><\/tr>');

document.writeln('<tr><td class="searchbox-body" id="searchbox-body">');
document.writeln('<form name="search" style="margin:0px; padding:0px" onSubmit=\'return jump()\'>');
document.writeln('<a class="searchbox-body" href="../../../_classes/index.html">Class<\/a>: ');
document.writeln('<input type="text" size=10 value="" name="classname"><br>');
document.writeln('<a id="funcsearchlink" class="searchbox-body" href="../../../_functions/index.html">Function<\/a>: ');
document.writeln('<input type="text" size=10 value="" name="funcname"><br>');
document.writeln('<a class="searchbox-body" href="../../../_variables/index.html">Variable<\/a>: ');
document.writeln('<input type="text" size=10 value="" name="varname"><br>');
document.writeln('<a class="searchbox-body" href="../../../_constants/index.html">Constant<\/a>: ');
document.writeln('<input type="text" size=10 value="" name="constname"><br>');
document.writeln('<a class="searchbox-body" href="../../../_tables/index.html">Table<\/a>: ');
document.writeln('<input type="text" size=10 value="" name="tablename"><br>');
document.writeln('<input type="submit" class="searchbox-button" value="Search">');
document.writeln('<\/form>');
document.writeln('<\/td><\/tr><\/table>');
document.writeln('<\/td><\/tr><\/table>');
// -->
</script>
<div id="search-popup" class="searchpopup"><p id="searchpopup-title" class="searchpopup-title">title</p><div id="searchpopup-body" class="searchpopup-body">Body</div><p class="searchpopup-close"><a href="javascript:gwCloseActive()">[close]</a></p></div>
<h2 class="listing-heading"><a href="./index.html">/core/v0.1/z/</a> -> <a href="z.class.php.html">z.class.php</a> (source)</h2>
<div class="listing">
<p class="viewlinks">[<a href="z.class.php.html">Summary view</a>]
[<a href="javascript:window.print();">Print</a>]
[<a href="z.class.php.source.txt" target="_new">Text view</a>]
</p>
<pre>
<a name="l1"><span class="linenum">   1</span></a>  &lt;?php
<a name="l2"><span class="linenum">   2</span></a>  namespace z;
<a name="l3"><span class="linenum">   3</span></a>  
<a name="l4"><span class="linenum">   4</span></a>  <span class="keyword">class </span><a class="class" onClick="logClass('z')" href="../../../_classes/z.html" onMouseOver="classPopup(event,'z')">z</a>
<a name="l5"><span class="linenum">   5</span></a>  {
<a name="l6"><span class="linenum">   6</span></a>      final public static function <a class="function" onClick="logFunction('start')" href="../../../_functions/start.html" onMouseOver="funcPopup(event,'start')">start</a>()
<a name="l7"><span class="linenum">   7</span></a>      {
<a name="l8"><span class="linenum">   8</span></a>          self::<a class="function" onClick="logFunction('loadMapping')" href="../../../_functions/loadmapping.html" onMouseOver="funcPopup(event,'loadmapping')">loadMapping</a>();
<a name="l9"><span class="linenum">   9</span></a>          self::<a class="function" onClick="logFunction('loadFunctions')" href="../../../_functions/loadfunctions.html" onMouseOver="funcPopup(event,'loadfunctions')">loadFunctions</a>();
<a name="l10"><span class="linenum">  10</span></a>          self::<a class="function" onClick="logFunction('setSession')" href="../../../_functions/setsession.html" onMouseOver="funcPopup(event,'setsession')">setSession</a>();
<a name="l11"><span class="linenum">  11</span></a>          self::<a class="function" onClick="logFunction('setInput')" href="../../../_functions/setinput.html" onMouseOver="funcPopup(event,'setinput')">setInput</a>();
<a name="l12"><span class="linenum">  12</span></a>          <a class="phpfunction" onClick="logFunction('headers_sent')" href="../../../_functions/headers_sent.html" onMouseOver="phpfuncPopup(event,'headers_sent')">headers_sent</a>() || <a class="phpfunction" onClick="logFunction('header')" href="../../../_functions/header.html" onMouseOver="phpfuncPopup(event,'header')">header</a>('Content-type: text/html; charset=utf-8');
<a name="l13"><span class="linenum">  13</span></a>          <a class="phpfunction" onClick="logFunction('header')" href="../../../_functions/header.html" onMouseOver="phpfuncPopup(event,'header')">header</a>('X-Powered-By: ' . (<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['POWEREDBY'] ?? 'Z-PHP'));
<a name="l14"><span class="linenum">  14</span></a>          <a class="var it299" onMouseOver="hilite(299)" onMouseOut="lolite()" onClick="logVariable('ctrl')" href="../../../_variables/ctrl.html">$ctrl</a> = '\\ctrl\\' . <a class="constant" onClick="logConstant('ROUTE')" href="../../../_constants/ROUTE.html" onMouseOver="constPopup(event,'ROUTE')">ROUTE</a>['ctrl'];
<a name="l15"><span class="linenum">  15</span></a>          <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a> = <a class="constant" onClick="logConstant('ROUTE')" href="../../../_constants/ROUTE.html" onMouseOver="constPopup(event,'ROUTE')">ROUTE</a>['act'];
<a name="l16"><span class="linenum">  16</span></a>          <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_MAPPING']['ctrl'] . <a class="constant" onClick="logConstant('ROUTE')" href="../../../_constants/ROUTE.html" onMouseOver="constPopup(event,'ROUTE')">ROUTE</a>['ctrl'] . '.class.php') &amp;&amp; require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>;
<a name="l17"><span class="linenum">  17</span></a>          if (<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['DEBUG']['level'] &lt; 2) {
<a name="l18"><span class="linenum">  18</span></a>              if (!<a class="phpfunction" onClick="logFunction('class_exists')" href="../../../_functions/class_exists.html" onMouseOver="phpfuncPopup(event,'class_exists')">class_exists</a>(<a class="var it299" onMouseOver="hilite(299)" onMouseOut="lolite()" onClick="logVariable('ctrl')" href="../../../_variables/ctrl.html">$ctrl</a>, false)) {
<a name="l19"><span class="linenum">  19</span></a>                  <a class="class" onClick="logClass('ctrl')" href="../../../_classes/ctrl.html" onMouseOver="classPopup(event,'ctrl')">ctrl</a>::<a class="function" onClick="logFunction('_404')" href="../../../_functions/_404.html" onMouseOver="funcPopup(event,'_404')">_404</a>();
<a name="l20"><span class="linenum">  20</span></a>              }
<a name="l21"><span class="linenum">  21</span></a>              <a class="phpfunction" onClick="logFunction('method_exists')" href="../../../_functions/method_exists.html" onMouseOver="phpfuncPopup(event,'method_exists')">method_exists</a>(<a class="var it299" onMouseOver="hilite(299)" onMouseOut="lolite()" onClick="logVariable('ctrl')" href="../../../_variables/ctrl.html">$ctrl</a>, <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a>) || (<a class="phpfunction" onClick="logFunction('method_exists')" href="../../../_functions/method_exists.html" onMouseOver="phpfuncPopup(event,'method_exists')">method_exists</a>(<a class="var it299" onMouseOver="hilite(299)" onMouseOut="lolite()" onClick="logVariable('ctrl')" href="../../../_variables/ctrl.html">$ctrl</a>, '_404') ? $<a class="class" onClick="logClass('ctrl')" href="../../../_classes/ctrl.html" onMouseOver="classPopup(event,'ctrl')">ctrl</a>::<a class="function" onClick="logFunction('_404')" href="../../../_functions/_404.html" onMouseOver="funcPopup(event,'_404')">_404</a>() : <a class="class" onClick="logClass('ctrl')" href="../../../_classes/ctrl.html" onMouseOver="classPopup(event,'ctrl')">ctrl</a>::<a class="function" onClick="logFunction('_404')" href="../../../_functions/_404.html" onMouseOver="funcPopup(event,'_404')">_404</a>());
<a name="l22"><span class="linenum">  22</span></a>          }
<a name="l23"><span class="linenum">  23</span></a>          <a class="phpfunction" onClick="logFunction('method_exists')" href="../../../_functions/method_exists.html" onMouseOver="phpfuncPopup(event,'method_exists')">method_exists</a>(<a class="var it299" onMouseOver="hilite(299)" onMouseOut="lolite()" onClick="logVariable('ctrl')" href="../../../_variables/ctrl.html">$ctrl</a>, 'init') &amp;&amp; $<a class="class" onClick="logClass('ctrl')" href="../../../_classes/ctrl.html" onMouseOver="classPopup(event,'ctrl')">ctrl</a>::<a class="function" onClick="logFunction('init')" href="../../../_functions/init.html" onMouseOver="funcPopup(event,'init')">init</a>();
<a name="l24"><span class="linenum">  24</span></a>          <a class="var it78" onMouseOver="hilite(78)" onMouseOut="lolite()" onClick="logVariable('result')" href="../../../_variables/result.html">$result</a> = <a class="var it299" onMouseOver="hilite(299)" onMouseOut="lolite()" onClick="logVariable('ctrl')" href="../../../_variables/ctrl.html">$ctrl</a>::<a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a>();
<a name="l25"><span class="linenum">  25</span></a>          <a class="phpfunction" onClick="logFunction('method_exists')" href="../../../_functions/method_exists.html" onMouseOver="phpfuncPopup(event,'method_exists')">method_exists</a>(<a class="var it299" onMouseOver="hilite(299)" onMouseOut="lolite()" onClick="logVariable('ctrl')" href="../../../_variables/ctrl.html">$ctrl</a>, 'after') &amp;&amp; $<a class="class" onClick="logClass('ctrl')" href="../../../_classes/ctrl.html" onMouseOver="classPopup(event,'ctrl')">ctrl</a>::after();
<a name="l26"><span class="linenum">  26</span></a>          isset(<a class="var it78" onMouseOver="hilite(78)" onMouseOut="lolite()" onClick="logVariable('result')" href="../../../_variables/result.html">$result</a>) ? die(<a class="class" onClick="logClass('ctrl')" href="../../../_classes/ctrl.html" onMouseOver="classPopup(event,'ctrl')">ctrl</a>::<a class="function" onClick="logFunction('json')" href="../../../_functions/json.html" onMouseOver="funcPopup(event,'json')">json</a>(<a class="var it78" onMouseOver="hilite(78)" onMouseOut="lolite()" onClick="logVariable('result')" href="../../../_variables/result.html">$result</a>)) : <a class="class" onClick="logClass('debug')" href="../../../_classes/debug.html" onMouseOver="classPopup(event,'debug')">debug</a>::<a class="function" onClick="logFunction('ShowMsg')" href="../../../_functions/showmsg.html" onMouseOver="funcPopup(event,'showmsg')">ShowMsg</a>();
<a name="l27"><span class="linenum">  27</span></a>          die;
<a name="l28"><span class="linenum">  28</span></a>      }
<a name="l29"><span class="linenum">  29</span></a>      private static function <a class="function" onClick="logFunction('setSession')" href="../../../_functions/setsession.html" onMouseOver="funcPopup(event,'setsession')">setSession</a>()
<a name="l30"><span class="linenum">  30</span></a>      {
<a name="l31"><span class="linenum">  31</span></a>          if (isset(<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['SESSION']['auto']) &amp;&amp; !<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['SESSION']['auto']) {
<a name="l32"><span class="linenum">  32</span></a>              return;
<a name="l33"><span class="linenum">  33</span></a>          }
<a name="l34"><span class="linenum">  34</span></a>          self::<a class="function" onClick="logFunction('SessionStart')" href="../../../_functions/sessionstart.html" onMouseOver="funcPopup(event,'sessionstart')">SessionStart</a>();
<a name="l35"><span class="linenum">  35</span></a>      }
<a name="l36"><span class="linenum">  36</span></a>      public static function <a class="function" onClick="logFunction('SessionStart')" href="../../../_functions/sessionstart.html" onMouseOver="funcPopup(event,'sessionstart')">SessionStart</a>()
<a name="l37"><span class="linenum">  37</span></a>      {
<a name="l38"><span class="linenum">  38</span></a>          if (!empty(<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['SESSION']['name'])) {
<a name="l39"><span class="linenum">  39</span></a>              <a class="var it300" onMouseOver="hilite(300)" onMouseOut="lolite()" onClick="logVariable('org')" href="../../../_variables/org.html">$org</a> = <a class="phpfunction" onClick="logFunction('session_name')" href="../../../_functions/session_name.html" onMouseOver="phpfuncPopup(event,'session_name')">session_name</a>(<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['SESSION']['name']);
<a name="l40"><span class="linenum">  40</span></a>              isset(<a class="var it301" onMouseOver="hilite(301)" onMouseOut="lolite()" onClick="logVariable('_COOKIE')" href="../../../_variables/_COOKIE.html">$_COOKIE</a>[<a class="var it300" onMouseOver="hilite(300)" onMouseOut="lolite()" onClick="logVariable('org')" href="../../../_variables/org.html">$org</a>]) &amp;&amp; <a class="phpfunction" onClick="logFunction('setcookie')" href="../../../_functions/setcookie.html" onMouseOver="phpfuncPopup(event,'setcookie')">setcookie</a>(<a class="var it300" onMouseOver="hilite(300)" onMouseOut="lolite()" onClick="logVariable('org')" href="../../../_variables/org.html">$org</a>, '', 0, '/');
<a name="l41"><span class="linenum">  41</span></a>          }
<a name="l42"><span class="linenum">  42</span></a>          if (!empty(<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['SESSION']['httponly'])) {
<a name="l43"><span class="linenum">  43</span></a>              <a class="phpfunction" onClick="logFunction('ini_set')" href="../../../_functions/ini_set.html" onMouseOver="phpfuncPopup(event,'ini_set')">ini_set</a>('session.cookie_httponly', true);
<a name="l44"><span class="linenum">  44</span></a>          }
<a name="l45"><span class="linenum">  45</span></a>          if (!empty(<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['SESSION']['redis'])) {
<a name="l46"><span class="linenum">  46</span></a>              <a class="var it4" onMouseOver="hilite(4)" onMouseOut="lolite()" onClick="logVariable('cfg')" href="../../../_variables/cfg.html">$cfg</a> = empty(<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['SESSION']['host']) ? <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['REDIS'] : <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['SESSION'];
<a name="l47"><span class="linenum">  47</span></a>              <a class="var it302" onMouseOver="hilite(302)" onMouseOut="lolite()" onClick="logVariable('database')" href="../../../_variables/database.html">$database</a> = <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['SESSION']['database'] ?? 1;
<a name="l48"><span class="linenum">  48</span></a>              <a class="var it303" onMouseOver="hilite(303)" onMouseOut="lolite()" onClick="logVariable('session_path')" href="../../../_variables/session_path.html">$session_path</a> = &quot;tcp://{<a class="var it4" onMouseOver="hilite(4)" onMouseOut="lolite()" onClick="logVariable('cfg')" href="../../../_variables/cfg.html">$cfg</a>['host']}:{<a class="var it4" onMouseOver="hilite(4)" onMouseOut="lolite()" onClick="logVariable('cfg')" href="../../../_variables/cfg.html">$cfg</a>['port']}?database={<a class="var it302" onMouseOver="hilite(302)" onMouseOut="lolite()" onClick="logVariable('database')" href="../../../_variables/database.html">$database</a>}&quot;;
<a name="l49"><span class="linenum">  49</span></a>              empty(<a class="var it4" onMouseOver="hilite(4)" onMouseOut="lolite()" onClick="logVariable('cfg')" href="../../../_variables/cfg.html">$cfg</a>['pass']) || <a class="var it303" onMouseOver="hilite(303)" onMouseOut="lolite()" onClick="logVariable('session_path')" href="../../../_variables/session_path.html">$session_path</a> .= &quot;&amp;auth={<a class="var it4" onMouseOver="hilite(4)" onMouseOut="lolite()" onClick="logVariable('cfg')" href="../../../_variables/cfg.html">$cfg</a>['pass']}&quot;;
<a name="l50"><span class="linenum">  50</span></a>              <a class="phpfunction" onClick="logFunction('ini_set')" href="../../../_functions/ini_set.html" onMouseOver="phpfuncPopup(event,'ini_set')">ini_set</a>('session.save_handler', 'redis');
<a name="l51"><span class="linenum">  51</span></a>              <a class="phpfunction" onClick="logFunction('ini_set')" href="../../../_functions/ini_set.html" onMouseOver="phpfuncPopup(event,'ini_set')">ini_set</a>('session.save_path', <a class="var it303" onMouseOver="hilite(303)" onMouseOut="lolite()" onClick="logVariable('session_path')" href="../../../_variables/session_path.html">$session_path</a>);
<a name="l52"><span class="linenum">  52</span></a>          }
<a name="l53"><span class="linenum">  53</span></a>          <a class="phpfunction" onClick="logFunction('session_start')" href="../../../_functions/session_start.html" onMouseOver="phpfuncPopup(event,'session_start')">session_start</a>();
<a name="l54"><span class="linenum">  54</span></a>      }
<a name="l55"><span class="linenum">  55</span></a>      public static function <a class="function" onClick="logFunction('AutoLoad')" href="../../../_functions/autoload.html" onMouseOver="funcPopup(event,'autoload')">AutoLoad</a>(string <a class="var it156" onMouseOver="hilite(156)" onMouseOut="lolite()" onClick="logVariable('r')" href="../../../_variables/r.html">$r</a>)
<a name="l56"><span class="linenum">  56</span></a>      {
<a name="l57"><span class="linenum">  57</span></a>          if (false !== <a class="phpfunction" onClick="logFunction('strpos')" href="../../../_functions/strpos.html" onMouseOver="phpfuncPopup(event,'strpos')">strpos</a>(<a class="var it156" onMouseOver="hilite(156)" onMouseOut="lolite()" onClick="logVariable('r')" href="../../../_variables/r.html">$r</a>, '\\')) {
<a name="l58"><span class="linenum">  58</span></a>              <a class="var it304" onMouseOver="hilite(304)" onMouseOut="lolite()" onClick="logVariable('path_arr')" href="../../../_variables/path_arr.html">$path_arr</a> = <a class="phpfunction" onClick="logFunction('explode')" href="../../../_functions/explode.html" onMouseOver="phpfuncPopup(event,'explode')">explode</a>('\\', <a class="var it156" onMouseOver="hilite(156)" onMouseOut="lolite()" onClick="logVariable('r')" href="../../../_variables/r.html">$r</a>);
<a name="l59"><span class="linenum">  59</span></a>              <a class="var it305" onMouseOver="hilite(305)" onMouseOut="lolite()" onClick="logVariable('path_root')" href="../../../_variables/path_root.html">$path_root</a> = <a class="phpfunction" onClick="logFunction('array_shift')" href="../../../_functions/array_shift.html" onMouseOver="phpfuncPopup(event,'array_shift')">array_shift</a>(<a class="var it304" onMouseOver="hilite(304)" onMouseOut="lolite()" onClick="logVariable('path_arr')" href="../../../_variables/path_arr.html">$path_arr</a>);
<a name="l60"><span class="linenum">  60</span></a>              if (!isset(<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_MAPPING'][<a class="var it305" onMouseOver="hilite(305)" onMouseOut="lolite()" onClick="logVariable('path_root')" href="../../../_variables/path_root.html">$path_root</a>])) {
<a name="l61"><span class="linenum">  61</span></a>                  if (empty(<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_AUTOLOAD'])) {
<a name="l62"><span class="linenum">  62</span></a>                      throw new \Exception(&quot;命名空间 {<a class="var it305" onMouseOver="hilite(305)" onMouseOut="lolite()" onClick="logVariable('path_root')" href="../../../_variables/path_root.html">$path_root</a>} 未做映射&quot;);
<a name="l63"><span class="linenum">  63</span></a>                  } else {
<a name="l64"><span class="linenum">  64</span></a>                      return <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_AUTOLOAD'](<a class="var it156" onMouseOver="hilite(156)" onMouseOut="lolite()" onClick="logVariable('r')" href="../../../_variables/r.html">$r</a>);
<a name="l65"><span class="linenum">  65</span></a>                  }
<a name="l66"><span class="linenum">  66</span></a>  
<a name="l67"><span class="linenum">  67</span></a>              }
<a name="l68"><span class="linenum">  68</span></a>              <a class="var it257" onMouseOver="hilite(257)" onMouseOut="lolite()" onClick="logVariable('fileName')" href="../../../_variables/fileName.html">$fileName</a> = <a class="phpfunction" onClick="logFunction('array_pop')" href="../../../_functions/array_pop.html" onMouseOver="phpfuncPopup(event,'array_pop')">array_pop</a>(<a class="var it304" onMouseOver="hilite(304)" onMouseOut="lolite()" onClick="logVariable('path_arr')" href="../../../_variables/path_arr.html">$path_arr</a>);
<a name="l69"><span class="linenum">  69</span></a>              <a class="var it306" onMouseOver="hilite(306)" onMouseOut="lolite()" onClick="logVariable('sub_path')" href="../../../_variables/sub_path.html">$sub_path</a> = <a class="var it304" onMouseOver="hilite(304)" onMouseOut="lolite()" onClick="logVariable('path_arr')" href="../../../_variables/path_arr.html">$path_arr</a> ? <a class="phpfunction" onClick="logFunction('implode')" href="../../../_functions/implode.html" onMouseOver="phpfuncPopup(event,'implode')">implode</a>('/', <a class="var it304" onMouseOver="hilite(304)" onMouseOut="lolite()" onClick="logVariable('path_arr')" href="../../../_variables/path_arr.html">$path_arr</a>) . '/' : '';
<a name="l70"><span class="linenum">  70</span></a>              <a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a> = &quot;{<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_MAPPING'][<a class="var it305" onMouseOver="hilite(305)" onMouseOut="lolite()" onClick="logVariable('path_root')" href="../../../_variables/path_root.html">$path_root</a>]}{<a class="var it306" onMouseOver="hilite(306)" onMouseOut="lolite()" onClick="logVariable('sub_path')" href="../../../_variables/sub_path.html">$sub_path</a>}&quot;;
<a name="l71"><span class="linenum">  71</span></a>              if (<a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = &quot;{<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>}{<a class="var it257" onMouseOver="hilite(257)" onMouseOut="lolite()" onClick="logVariable('fileName')" href="../../../_variables/fileName.html">$fileName</a>}.class.php&quot;) || <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = &quot;{<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>}{<a class="var it257" onMouseOver="hilite(257)" onMouseOut="lolite()" onClick="logVariable('fileName')" href="../../../_variables/fileName.html">$fileName</a>}.php&quot;)) {
<a name="l72"><span class="linenum">  72</span></a>                  require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>;
<a name="l73"><span class="linenum">  73</span></a>              } else {
<a name="l74"><span class="linenum">  74</span></a>                  throw new \Exception(&quot;file not fond: {<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>}{<a class="var it257" onMouseOver="hilite(257)" onMouseOut="lolite()" onClick="logVariable('fileName')" href="../../../_variables/fileName.html">$fileName</a>}.class.php&quot;);
<a name="l75"><span class="linenum">  75</span></a>              }
<a name="l76"><span class="linenum">  76</span></a>          } else {
<a name="l77"><span class="linenum">  77</span></a>              empty(<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_AUTOLOAD']) || <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_AUTOLOAD'](<a class="var it156" onMouseOver="hilite(156)" onMouseOut="lolite()" onClick="logVariable('r')" href="../../../_variables/r.html">$r</a>);
<a name="l78"><span class="linenum">  78</span></a>          }
<a name="l79"><span class="linenum">  79</span></a>      }
<a name="l80"><span class="linenum">  80</span></a>      public static function <a class="function" onClick="logFunction('LoadConfig')" href="../../../_functions/loadconfig.html" onMouseOver="funcPopup(event,'loadconfig')">LoadConfig</a>(<a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a> = false)
<a name="l81"><span class="linenum">  81</span></a>      {
<a name="l82"><span class="linenum">  82</span></a>          if (<a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a>) {
<a name="l83"><span class="linenum">  83</span></a>              <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a>) &amp;&amp; <a class="phpfunction" onClick="logFunction('is_array')" href="../../../_functions/is_array.html" onMouseOver="phpfuncPopup(event,'is_array')">is_array</a>(<a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a> = require <a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a>) &amp;&amp; <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG'] = <a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a> + <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG'];
<a name="l84"><span class="linenum">  84</span></a>          } else {
<a name="l85"><span class="linenum">  85</span></a>              <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG'] = <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_APP')" href="../../../_constants/P_APP.html" onMouseOver="constPopup(event,'P_APP')">P_APP</a> . 'config.php') &amp;&amp; <a class="phpfunction" onClick="logFunction('is_array')" href="../../../_functions/is_array.html" onMouseOver="phpfuncPopup(event,'is_array')">is_array</a>(<a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a> = require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>) ? <a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a> : [];
<a name="l86"><span class="linenum">  86</span></a>              <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_COMMON')" href="../../../_constants/P_COMMON.html" onMouseOver="constPopup(event,'P_COMMON')">P_COMMON</a> . 'config.php') &amp;&amp; <a class="phpfunction" onClick="logFunction('is_array')" href="../../../_functions/is_array.html" onMouseOver="phpfuncPopup(event,'is_array')">is_array</a>(<a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a> = require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>) &amp;&amp; <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG'] += <a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a>;
<a name="l87"><span class="linenum">  87</span></a>          }
<a name="l88"><span class="linenum">  88</span></a>      }
<a name="l89"><span class="linenum">  89</span></a>      public static function <a class="function" onClick="logFunction('loadFunctions')" href="../../../_functions/loadfunctions.html" onMouseOver="funcPopup(event,'loadfunctions')">loadFunctions</a>()
<a name="l90"><span class="linenum">  90</span></a>      {
<a name="l91"><span class="linenum">  91</span></a>          <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_COMMON')" href="../../../_constants/P_COMMON.html" onMouseOver="constPopup(event,'P_COMMON')">P_COMMON</a> . 'functions.php') &amp;&amp; require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>;
<a name="l92"><span class="linenum">  92</span></a>          <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_APP')" href="../../../_constants/P_APP.html" onMouseOver="constPopup(event,'P_APP')">P_APP</a> . 'functions.php') &amp;&amp; require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>;
<a name="l93"><span class="linenum">  93</span></a>          if (<a class="phpfunction" onClick="logFunction('defined')" href="../../../_functions/defined.html" onMouseOver="phpfuncPopup(event,'defined')">defined</a>('<a class="constant" onClick="logConstant('P_MODULE')" href="../../../_constants/P_MODULE.html" onMouseOver="constPopup(event,'P_MODULE')">P_MODULE</a>')) {
<a name="l94"><span class="linenum">  94</span></a>              <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_APP_VER')" href="../../../_constants/P_APP_VER.html" onMouseOver="constPopup(event,'P_APP_VER')">P_APP_VER</a> . 'functions.php') &amp;&amp; require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>;
<a name="l95"><span class="linenum">  95</span></a>              <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_MODULE')" href="../../../_constants/P_MODULE.html" onMouseOver="constPopup(event,'P_MODULE')">P_MODULE</a> . 'common/functions.php') &amp;&amp; require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>;
<a name="l96"><span class="linenum">  96</span></a>          } else {
<a name="l97"><span class="linenum">  97</span></a>              <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_APP_VER')" href="../../../_constants/P_APP_VER.html" onMouseOver="constPopup(event,'P_APP_VER')">P_APP_VER</a> . 'common/functions.php') &amp;&amp; require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>;
<a name="l98"><span class="linenum">  98</span></a>          }
<a name="l99"><span class="linenum">  99</span></a>      }
<a name="l100"><span class="linenum"> 100</span></a>      public static function <a class="function" onClick="logFunction('SetConfig')" href="../../../_functions/setconfig.html" onMouseOver="funcPopup(event,'setconfig')">SetConfig</a>(string <a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>, <a class="var it27" onMouseOver="hilite(27)" onMouseOut="lolite()" onClick="logVariable('value')" href="../../../_variables/value.html">$value</a>)
<a name="l101"><span class="linenum"> 101</span></a>      {
<a name="l102"><span class="linenum"> 102</span></a>          <a class="phpfunction" onClick="logFunction('is_array')" href="../../../_functions/is_array.html" onMouseOver="phpfuncPopup(event,'is_array')">is_array</a>(<a class="var it27" onMouseOver="hilite(27)" onMouseOut="lolite()" onClick="logVariable('value')" href="../../../_variables/value.html">$value</a>) ? <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG'][<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>] = <a class="var it27" onMouseOver="hilite(27)" onMouseOut="lolite()" onClick="logVariable('value')" href="../../../_variables/value.html">$value</a> + <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG'][<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>] : <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG'][<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>] = <a class="var it27" onMouseOver="hilite(27)" onMouseOut="lolite()" onClick="logVariable('value')" href="../../../_variables/value.html">$value</a>;
<a name="l103"><span class="linenum"> 103</span></a>      }
<a name="l104"><span class="linenum"> 104</span></a>      public static function <a class="function" onClick="logFunction('GetConfig')" href="../../../_functions/getconfig.html" onMouseOver="funcPopup(event,'getconfig')">GetConfig</a>(<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a> = '')
<a name="l105"><span class="linenum"> 105</span></a>      {
<a name="l106"><span class="linenum"> 106</span></a>          return <a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a> ? <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG'][<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>] : <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG'];
<a name="l107"><span class="linenum"> 107</span></a>      }
<a name="l108"><span class="linenum"> 108</span></a>      private static function <a class="function" onClick="logFunction('loadMapping')" href="../../../_functions/loadmapping.html" onMouseOver="funcPopup(event,'loadmapping')">loadMapping</a>()
<a name="l109"><span class="linenum"> 109</span></a>      {
<a name="l110"><span class="linenum"> 110</span></a>          <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_APP_VER')" href="../../../_constants/P_APP_VER.html" onMouseOver="constPopup(event,'P_APP_VER')">P_APP_VER</a> . 'common/mapping.php') &amp;&amp; <a class="phpfunction" onClick="logFunction('is_array')" href="../../../_functions/is_array.html" onMouseOver="phpfuncPopup(event,'is_array')">is_array</a>(<a class="var it307" onMouseOver="hilite(307)" onMouseOut="lolite()" onClick="logVariable('map')" href="../../../_variables/map.html">$map</a> = require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>) &amp;&amp; <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_MAPPING'] += <a class="var it307" onMouseOver="hilite(307)" onMouseOut="lolite()" onClick="logVariable('map')" href="../../../_variables/map.html">$map</a>;
<a name="l111"><span class="linenum"> 111</span></a>          <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_COMMON')" href="../../../_constants/P_COMMON.html" onMouseOver="constPopup(event,'P_COMMON')">P_COMMON</a> . 'mapping.php') &amp;&amp; <a class="phpfunction" onClick="logFunction('is_array')" href="../../../_functions/is_array.html" onMouseOver="phpfuncPopup(event,'is_array')">is_array</a>(<a class="var it307" onMouseOver="hilite(307)" onMouseOut="lolite()" onClick="logVariable('map')" href="../../../_variables/map.html">$map</a> = require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>) &amp;&amp; <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_MAPPING'] += <a class="var it307" onMouseOver="hilite(307)" onMouseOut="lolite()" onClick="logVariable('map')" href="../../../_variables/map.html">$map</a>;
<a name="l112"><span class="linenum"> 112</span></a>          <a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a> = isset(<a class="constant" onClick="logConstant('ROUTE')" href="../../../_constants/ROUTE.html" onMouseOver="constPopup(event,'ROUTE')">ROUTE</a>['module']) ? <a class="constant" onClick="logConstant('P_APP_VER')" href="../../../_constants/P_APP_VER.html" onMouseOver="constPopup(event,'P_APP_VER')">P_APP_VER</a> . <a class="constant" onClick="logConstant('ROUTE')" href="../../../_constants/ROUTE.html" onMouseOver="constPopup(event,'ROUTE')">ROUTE</a>['module'] . '/' : <a class="constant" onClick="logConstant('P_APP_VER')" href="../../../_constants/P_APP_VER.html" onMouseOver="constPopup(event,'P_APP_VER')">P_APP_VER</a>;
<a name="l113"><span class="linenum"> 113</span></a>          <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_MAPPING'] += [
<a name="l114"><span class="linenum"> 114</span></a>              'app' =&gt; <a class="constant" onClick="logConstant('P_APP_VER')" href="../../../_constants/P_APP_VER.html" onMouseOver="constPopup(event,'P_APP_VER')">P_APP_VER</a>,
<a name="l115"><span class="linenum"> 115</span></a>              'module' =&gt; &quot;{<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>}&quot;,
<a name="l116"><span class="linenum"> 116</span></a>              'ctrl' =&gt; &quot;{<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>}ctrl/&quot;,
<a name="l117"><span class="linenum"> 117</span></a>              'model' =&gt; &quot;{<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>}model/&quot;,
<a name="l118"><span class="linenum"> 118</span></a>              'lib' =&gt; &quot;{<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>}lib/&quot;,
<a name="l119"><span class="linenum"> 119</span></a>              'base' =&gt; &quot;{<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>}base/&quot;,
<a name="l120"><span class="linenum"> 120</span></a>          ];
<a name="l121"><span class="linenum"> 121</span></a>      }
<a name="l122"><span class="linenum"> 122</span></a>      private static function <a class="function" onClick="logFunction('setInput')" href="../../../_functions/setinput.html" onMouseOver="funcPopup(event,'setinput')">setInput</a>()
<a name="l123"><span class="linenum"> 123</span></a>      {
<a name="l124"><span class="linenum"> 124</span></a>          <a class="var it308" onMouseOver="hilite(308)" onMouseOut="lolite()" onClick="logVariable('I')" href="../../../_variables/I.html">$I</a>['INPUT'] = <a class="phpfunction" onClick="logFunction('file_get_contents')" href="../../../_functions/file_get_contents.html" onMouseOver="phpfuncPopup(event,'file_get_contents')">file_get_contents</a>('php://input');
<a name="l125"><span class="linenum"> 125</span></a>          if (isset(<a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>['CONTENT_TYPE'])) {
<a name="l126"><span class="linenum"> 126</span></a>              <a class="var it309" onMouseOver="hilite(309)" onMouseOut="lolite()" onClick="logVariable('H')" href="../../../_variables/H.html">$H</a> = <a class="phpfunction" onClick="logFunction('explode')" href="../../../_functions/explode.html" onMouseOver="phpfuncPopup(event,'explode')">explode</a>(';', <a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>['CONTENT_TYPE']);
<a name="l127"><span class="linenum"> 127</span></a>              if ('POST' === <a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>['REQUEST_METHOD']) {
<a name="l128"><span class="linenum"> 128</span></a>                  'application/json' === <a class="var it309" onMouseOver="hilite(309)" onMouseOut="lolite()" onClick="logVariable('H')" href="../../../_variables/H.html">$H</a>[0] &amp;&amp; <a class="var it310" onMouseOver="hilite(310)" onMouseOut="lolite()" onClick="logVariable('_POST')" href="../../../_variables/_POST.html">$_POST</a> += json_decode(<a class="var it308" onMouseOver="hilite(308)" onMouseOut="lolite()" onClick="logVariable('I')" href="../../../_variables/I.html">$I</a>['INPUT'], true);
<a name="l129"><span class="linenum"> 129</span></a>              } else {
<a name="l130"><span class="linenum"> 130</span></a>                  switch (<a class="var it309" onMouseOver="hilite(309)" onMouseOut="lolite()" onClick="logVariable('H')" href="../../../_variables/H.html">$H</a>[0]) {
<a name="l131"><span class="linenum"> 131</span></a>                      case 'application/json':
<a name="l132"><span class="linenum"> 132</span></a>                          <a class="var it308" onMouseOver="hilite(308)" onMouseOut="lolite()" onClick="logVariable('I')" href="../../../_variables/I.html">$I</a>[<a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>['REQUEST_METHOD']] = json_decode(<a class="var it308" onMouseOver="hilite(308)" onMouseOut="lolite()" onClick="logVariable('I')" href="../../../_variables/I.html">$I</a>['INPUT'], true);
<a name="l133"><span class="linenum"> 133</span></a>                          break;
<a name="l134"><span class="linenum"> 134</span></a>                      case 'application/x-www-form-urlencoded':
<a name="l135"><span class="linenum"> 135</span></a>                          <a class="phpfunction" onClick="logFunction('parse_str')" href="../../../_functions/parse_str.html" onMouseOver="phpfuncPopup(event,'parse_str')">parse_str</a>(<a class="var it308" onMouseOver="hilite(308)" onMouseOut="lolite()" onClick="logVariable('I')" href="../../../_variables/I.html">$I</a>['INPUT'], <a class="var it308" onMouseOver="hilite(308)" onMouseOut="lolite()" onClick="logVariable('I')" href="../../../_variables/I.html">$I</a>[<a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>['REQUEST_METHOD']]);
<a name="l136"><span class="linenum"> 136</span></a>                          break;
<a name="l137"><span class="linenum"> 137</span></a>                  }
<a name="l138"><span class="linenum"> 138</span></a>              }
<a name="l139"><span class="linenum"> 139</span></a>          }
<a name="l140"><span class="linenum"> 140</span></a>          <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('DATA')" href="../../../_constants/DATA.html" onMouseOver="constPopup(event,'DATA')">DATA</a>', <a class="var it308" onMouseOver="hilite(308)" onMouseOut="lolite()" onClick="logVariable('I')" href="../../../_variables/I.html">$I</a>);
<a name="l141"><span class="linenum"> 141</span></a>      }
<a name="l142"><span class="linenum"> 142</span></a>  }
<a name="l143"><span class="linenum"> 143</span></a>  
<a name="l144"><span class="linenum"> 144</span></a>  <span class="keyword">class </span><a class="class" onClick="logClass('router')" href="../../../_classes/router.html" onMouseOver="classPopup(event,'router')">router</a>
<a name="l145"><span class="linenum"> 145</span></a>  {
<a name="l146"><span class="linenum"> 146</span></a>      const VER_PREFIX = 'v';
<a name="l147"><span class="linenum"> 147</span></a>      private static <a class="var it311" onMouseOver="hilite(311)" onMouseOut="lolite()" onClick="logVariable('IS_MODULE')" href="../../../_variables/IS_MODULE.html">$IS_MODULE</a> = 0,
<a name="l148"><span class="linenum"> 148</span></a>      <a class="var it312" onMouseOver="hilite(312)" onMouseOut="lolite()" onClick="logVariable('MOD')" href="../../../_variables/MOD.html">$MOD</a> = 0,
<a name="l149"><span class="linenum"> 149</span></a>      <a class="var it313" onMouseOver="hilite(313)" onMouseOut="lolite()" onClick="logVariable('VER')" href="../../../_variables/VER.html">$VER</a> = [],
<a name="l150"><span class="linenum"> 150</span></a>      <a class="var it314" onMouseOver="hilite(314)" onMouseOut="lolite()" onClick="logVariable('ROUTER')" href="../../../_variables/ROUTER.html">$ROUTER</a> = [],
<a name="l151"><span class="linenum"> 151</span></a>      <a class="var it315" onMouseOver="hilite(315)" onMouseOut="lolite()" onClick="logVariable('FORMAT')" href="../../../_variables/FORMAT.html">$FORMAT</a> = [],
<a name="l152"><span class="linenum"> 152</span></a>      <a class="var it316" onMouseOver="hilite(316)" onMouseOut="lolite()" onClick="logVariable('APP_ISMODULE')" href="../../../_variables/APP_ISMODULE.html">$APP_ISMODULE</a>,
<a name="l153"><span class="linenum"> 153</span></a>          <a class="var it317" onMouseOver="hilite(317)" onMouseOut="lolite()" onClick="logVariable('APP_MAP')" href="../../../_variables/APP_MAP.html">$APP_MAP</a>;
<a name="l154"><span class="linenum"> 154</span></a>      public static function <a class="function" onClick="logFunction('init')" href="../../../_functions/init.html" onMouseOver="funcPopup(event,'init')">init</a>()
<a name="l155"><span class="linenum"> 155</span></a>      {
<a name="l156"><span class="linenum"> 156</span></a>          <a class="class" onClick="logClass('z')" href="../../../_classes/z.html" onMouseOver="classPopup(event,'z')">z</a>::<a class="function" onClick="logFunction('LoadConfig')" href="../../../_functions/loadconfig.html" onMouseOver="funcPopup(event,'loadconfig')">LoadConfig</a>();
<a name="l157"><span class="linenum"> 157</span></a>          self::<a class="function" onClick="logFunction('setVer')" href="../../../_functions/setver.html" onMouseOver="funcPopup(event,'setver')">setVer</a>();
<a name="l158"><span class="linenum"> 158</span></a>          <a class="class" onClick="logClass('z')" href="../../../_classes/z.html" onMouseOver="classPopup(event,'z')">z</a>::<a class="function" onClick="logFunction('LoadConfig')" href="../../../_functions/loadconfig.html" onMouseOver="funcPopup(event,'loadconfig')">LoadConfig</a>(<a class="constant" onClick="logConstant('P_APP_VER')" href="../../../_constants/P_APP_VER.html" onMouseOver="constPopup(event,'P_APP_VER')">P_APP_VER</a> . 'config.php');
<a name="l159"><span class="linenum"> 159</span></a>          self::<a class="var it311" onMouseOver="hilite(311)" onMouseOut="lolite()" onClick="logVariable('IS_MODULE')" href="../../../_variables/IS_MODULE.html">$IS_MODULE</a> = !empty(<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['ROUTER']['module']);
<a name="l160"><span class="linenum"> 160</span></a>          self::<a class="var it311" onMouseOver="hilite(311)" onMouseOut="lolite()" onClick="logVariable('IS_MODULE')" href="../../../_variables/IS_MODULE.html">$IS_MODULE</a> || <a class="class" onClick="logClass('z')" href="../../../_classes/z.html" onMouseOver="classPopup(event,'z')">z</a>::<a class="function" onClick="logFunction('LoadConfig')" href="../../../_functions/loadconfig.html" onMouseOver="funcPopup(event,'loadconfig')">LoadConfig</a>(<a class="constant" onClick="logConstant('P_APP_VER')" href="../../../_constants/P_APP_VER.html" onMouseOver="constPopup(event,'P_APP_VER')">P_APP_VER</a> . '<a class="filename" href="../../../common/config.php.html">common/config.php</a>');
<a name="l161"><span class="linenum"> 161</span></a>          self::<a class="var it312" onMouseOver="hilite(312)" onMouseOut="lolite()" onClick="logVariable('MOD')" href="../../../_variables/MOD.html">$MOD</a> = <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['ROUTER']['mod'] ?? 'auto';
<a name="l162"><span class="linenum"> 162</span></a>          <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('U_RES_VER')" href="../../../_constants/U_RES_VER.html" onMouseOver="constPopup(event,'U_RES_VER')">U_RES_VER</a>', <a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a> ? <a class="constant" onClick="logConstant('U_RES_APP')" href="../../../_constants/U_RES_APP.html" onMouseOver="constPopup(event,'U_RES_APP')">U_RES_APP</a> . '/' . self::VER_PREFIX . <a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a> : <a class="constant" onClick="logConstant('U_RES_APP')" href="../../../_constants/U_RES_APP.html" onMouseOver="constPopup(event,'U_RES_APP')">U_RES_APP</a>);
<a name="l163"><span class="linenum"> 163</span></a>          <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('TPL_EXT')" href="../../../_constants/TPL_EXT.html" onMouseOver="constPopup(event,'TPL_EXT')">TPL_EXT</a>', <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['VIEW']['ext'] ?? '.html');
<a name="l164"><span class="linenum"> 164</span></a>          <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('THEME')" href="../../../_constants/THEME.html" onMouseOver="constPopup(event,'THEME')">THEME</a>', <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['VIEW']['theme'] ?? 'default');
<a name="l165"><span class="linenum"> 165</span></a>          <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_VIEW_APP')" href="../../../_constants/P_VIEW_APP.html" onMouseOver="constPopup(event,'P_VIEW_APP')">P_VIEW_APP</a>', <a class="constant" onClick="logConstant('P_APP_VER')" href="../../../_constants/P_APP_VER.html" onMouseOver="constPopup(event,'P_APP_VER')">P_APP_VER</a> . 'view/');
<a name="l166"><span class="linenum"> 166</span></a>          <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_THEME_APP')" href="../../../_constants/P_THEME_APP.html" onMouseOver="constPopup(event,'P_THEME_APP')">P_THEME_APP</a>', <a class="constant" onClick="logConstant('P_VIEW_APP')" href="../../../_constants/P_VIEW_APP.html" onMouseOver="constPopup(event,'P_VIEW_APP')">P_VIEW_APP</a> . <a class="constant" onClick="logConstant('THEME')" href="../../../_constants/THEME.html" onMouseOver="constPopup(event,'THEME')">THEME</a> . '/');
<a name="l167"><span class="linenum"> 167</span></a>          <a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a> = self::<a class="function" onClick="logFunction('getPathInfo')" href="../../../_functions/getpathinfo.html" onMouseOver="funcPopup(event,'getpathinfo')">getPathInfo</a>();
<a name="l168"><span class="linenum"> 168</span></a>          switch (self::<a class="var it312" onMouseOver="hilite(312)" onMouseOut="lolite()" onClick="logVariable('MOD')" href="../../../_variables/MOD.html">$MOD</a>) {
<a name="l169"><span class="linenum"> 169</span></a>              case 0:
<a name="l170"><span class="linenum"> 170</span></a>                  <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> = self::<a class="function" onClick="logFunction('defaultRoute')" href="../../../_functions/defaultroute.html" onMouseOver="funcPopup(event,'defaultroute')">defaultRoute</a>();
<a name="l171"><span class="linenum"> 171</span></a>                  break;
<a name="l172"><span class="linenum"> 172</span></a>              case 1:
<a name="l173"><span class="linenum"> 173</span></a>                  <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> = self::<a class="function" onClick="logFunction('pathinfoRoute')" href="../../../_functions/pathinforoute.html" onMouseOver="funcPopup(event,'pathinforoute')">pathinfoRoute</a>(<a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a>);
<a name="l174"><span class="linenum"> 174</span></a>                  break;
<a name="l175"><span class="linenum"> 175</span></a>              case 2:
<a name="l176"><span class="linenum"> 176</span></a>              case 3:
<a name="l177"><span class="linenum"> 177</span></a>                  if (!<a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a> = self::<a class="function" onClick="logFunction('router')" href="../../../_functions/router.html" onMouseOver="funcPopup(event,'router')">router</a>()) {
<a name="l178"><span class="linenum"> 178</span></a>                      if (self::<a class="var it311" onMouseOver="hilite(311)" onMouseOut="lolite()" onClick="logVariable('IS_MODULE')" href="../../../_variables/IS_MODULE.html">$IS_MODULE</a>) {
<a name="l179"><span class="linenum"> 179</span></a>                          <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a> = [];
<a name="l180"><span class="linenum"> 180</span></a>                      } else {
<a name="l181"><span class="linenum"> 181</span></a>                          throw new \Exception('没有找到路由配置');
<a name="l182"><span class="linenum"> 182</span></a>                      }
<a name="l183"><span class="linenum"> 183</span></a>                  }
<a name="l184"><span class="linenum"> 184</span></a>                  <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> = self::<a class="function" onClick="logFunction('route')" href="../../../_functions/route.html" onMouseOver="funcPopup(event,'route')">route</a>(<a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a>, <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>);
<a name="l185"><span class="linenum"> 185</span></a>                  break;
<a name="l186"><span class="linenum"> 186</span></a>              default:
<a name="l187"><span class="linenum"> 187</span></a>                  if (<a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a> = self::<a class="function" onClick="logFunction('router')" href="../../../_functions/router.html" onMouseOver="funcPopup(event,'router')">router</a>()) {
<a name="l188"><span class="linenum"> 188</span></a>                      self::<a class="var it312" onMouseOver="hilite(312)" onMouseOut="lolite()" onClick="logVariable('MOD')" href="../../../_variables/MOD.html">$MOD</a> = 2;
<a name="l189"><span class="linenum"> 189</span></a>                      <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> = self::<a class="function" onClick="logFunction('route')" href="../../../_functions/route.html" onMouseOver="funcPopup(event,'route')">route</a>(<a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a>, <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>);
<a name="l190"><span class="linenum"> 190</span></a>                  } elseif (<a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a>) {
<a name="l191"><span class="linenum"> 191</span></a>                      self::<a class="var it312" onMouseOver="hilite(312)" onMouseOut="lolite()" onClick="logVariable('MOD')" href="../../../_variables/MOD.html">$MOD</a> = 1;
<a name="l192"><span class="linenum"> 192</span></a>                      <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> = self::<a class="function" onClick="logFunction('pathinfoRoute')" href="../../../_functions/pathinforoute.html" onMouseOver="funcPopup(event,'pathinforoute')">pathinfoRoute</a>(<a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a>);
<a name="l193"><span class="linenum"> 193</span></a>                  } else {
<a name="l194"><span class="linenum"> 194</span></a>                      self::<a class="var it312" onMouseOver="hilite(312)" onMouseOut="lolite()" onClick="logVariable('MOD')" href="../../../_variables/MOD.html">$MOD</a> = 0;
<a name="l195"><span class="linenum"> 195</span></a>                      <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> = self::<a class="function" onClick="logFunction('defaultRoute')" href="../../../_functions/defaultroute.html" onMouseOver="funcPopup(event,'defaultroute')">defaultRoute</a>();
<a name="l196"><span class="linenum"> 196</span></a>                  }
<a name="l197"><span class="linenum"> 197</span></a>                  break;
<a name="l198"><span class="linenum"> 198</span></a>          }
<a name="l199"><span class="linenum"> 199</span></a>          <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['query'] = isset(<a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['params']) ? <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['params'] + <a class="var it126" onMouseOver="hilite(126)" onMouseOut="lolite()" onClick="logVariable('_GET')" href="../../../_variables/_GET.html">$_GET</a> : <a class="var it126" onMouseOver="hilite(126)" onMouseOut="lolite()" onClick="logVariable('_GET')" href="../../../_variables/_GET.html">$_GET</a>;
<a name="l200"><span class="linenum"> 200</span></a>          <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['uri'] = <a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>['REQUEST_URI'];
<a name="l201"><span class="linenum"> 201</span></a>          if (isset(<a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['module'])) {
<a name="l202"><span class="linenum"> 202</span></a>              <a class="var it320" onMouseOver="hilite(320)" onMouseOut="lolite()" onClick="logVariable('module_path')" href="../../../_variables/module_path.html">$module_path</a> = <a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a> ? <a class="constant" onClick="logConstant('APP_NAME')" href="../../../_constants/APP_NAME.html" onMouseOver="constPopup(event,'APP_NAME')">APP_NAME</a> . '/' . self::VER_PREFIX . <a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a> . &quot;/{<a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['module']}&quot; : <a class="constant" onClick="logConstant('APP_NAME')" href="../../../_constants/APP_NAME.html" onMouseOver="constPopup(event,'APP_NAME')">APP_NAME</a> . &quot;/{<a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['module']}&quot;;
<a name="l203"><span class="linenum"> 203</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_MODULE')" href="../../../_constants/P_MODULE.html" onMouseOver="constPopup(event,'P_MODULE')">P_MODULE</a>', <a class="constant" onClick="logConstant('P_APP_VER')" href="../../../_constants/P_APP_VER.html" onMouseOver="constPopup(event,'P_APP_VER')">P_APP_VER</a> . <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['module'] . '/');
<a name="l204"><span class="linenum"> 204</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_RES_MODULE')" href="../../../_constants/P_RES_MODULE.html" onMouseOver="constPopup(event,'P_RES_MODULE')">P_RES_MODULE</a>', <a class="constant" onClick="logConstant('P_RES')" href="../../../_constants/P_RES.html" onMouseOver="constPopup(event,'P_RES')">P_RES</a> . <a class="var it320" onMouseOver="hilite(320)" onMouseOut="lolite()" onClick="logVariable('module_path')" href="../../../_variables/module_path.html">$module_path</a> . '/');
<a name="l205"><span class="linenum"> 205</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_RUN_MODULE')" href="../../../_constants/P_RUN_MODULE.html" onMouseOver="constPopup(event,'P_RUN_MODULE')">P_RUN_MODULE</a>', <a class="constant" onClick="logConstant('P_RUN')" href="../../../_constants/P_RUN.html" onMouseOver="constPopup(event,'P_RUN')">P_RUN</a> . <a class="var it320" onMouseOver="hilite(320)" onMouseOut="lolite()" onClick="logVariable('module_path')" href="../../../_variables/module_path.html">$module_path</a> . '/');
<a name="l206"><span class="linenum"> 206</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_HTML_MODULE')" href="../../../_constants/P_HTML_MODULE.html" onMouseOver="constPopup(event,'P_HTML_MODULE')">P_HTML_MODULE</a>', <a class="constant" onClick="logConstant('P_HTML')" href="../../../_constants/P_HTML.html" onMouseOver="constPopup(event,'P_HTML')">P_HTML</a> . <a class="var it320" onMouseOver="hilite(320)" onMouseOut="lolite()" onClick="logVariable('module_path')" href="../../../_variables/module_path.html">$module_path</a> . '/');
<a name="l207"><span class="linenum"> 207</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_CACHE_MODULE')" href="../../../_constants/P_CACHE_MODULE.html" onMouseOver="constPopup(event,'P_CACHE_MODULE')">P_CACHE_MODULE</a>', <a class="constant" onClick="logConstant('P_CACHE')" href="../../../_constants/P_CACHE.html" onMouseOver="constPopup(event,'P_CACHE')">P_CACHE</a> . <a class="var it320" onMouseOver="hilite(320)" onMouseOut="lolite()" onClick="logVariable('module_path')" href="../../../_variables/module_path.html">$module_path</a> . '/');
<a name="l208"><span class="linenum"> 208</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('U_RES_MODULE')" href="../../../_constants/U_RES_MODULE.html" onMouseOver="constPopup(event,'U_RES_MODULE')">U_RES_MODULE</a>', <a class="constant" onClick="logConstant('U_RES')" href="../../../_constants/U_RES.html" onMouseOver="constPopup(event,'U_RES')">U_RES</a> . &quot;/{<a class="var it320" onMouseOver="hilite(320)" onMouseOut="lolite()" onClick="logVariable('module_path')" href="../../../_variables/module_path.html">$module_path</a>}&quot;);
<a name="l209"><span class="linenum"> 209</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('U_RES_')" href="../../../_constants/U_RES_.html" onMouseOver="constPopup(event,'U_RES_')">U_RES_</a>', <a class="constant" onClick="logConstant('U_RES_MODULE')" href="../../../_constants/U_RES_MODULE.html" onMouseOver="constPopup(event,'U_RES_MODULE')">U_RES_MODULE</a>);
<a name="l210"><span class="linenum"> 210</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_RES_')" href="../../../_constants/P_RES_.html" onMouseOver="constPopup(event,'P_RES_')">P_RES_</a>', <a class="constant" onClick="logConstant('P_RES_MODULE')" href="../../../_constants/P_RES_MODULE.html" onMouseOver="constPopup(event,'P_RES_MODULE')">P_RES_MODULE</a>);
<a name="l211"><span class="linenum"> 211</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_RUN_')" href="../../../_constants/P_RUN_.html" onMouseOver="constPopup(event,'P_RUN_')">P_RUN_</a>', <a class="constant" onClick="logConstant('P_RUN_MODULE')" href="../../../_constants/P_RUN_MODULE.html" onMouseOver="constPopup(event,'P_RUN_MODULE')">P_RUN_MODULE</a>);
<a name="l212"><span class="linenum"> 212</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_HTML_')" href="../../../_constants/P_HTML_.html" onMouseOver="constPopup(event,'P_HTML_')">P_HTML_</a>', <a class="constant" onClick="logConstant('P_HTML_MODULE')" href="../../../_constants/P_HTML_MODULE.html" onMouseOver="constPopup(event,'P_HTML_MODULE')">P_HTML_MODULE</a>);
<a name="l213"><span class="linenum"> 213</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_CACHE_')" href="../../../_constants/P_CACHE_.html" onMouseOver="constPopup(event,'P_CACHE_')">P_CACHE_</a>', <a class="constant" onClick="logConstant('P_CACHE_MODULE')" href="../../../_constants/P_CACHE_MODULE.html" onMouseOver="constPopup(event,'P_CACHE_MODULE')">P_CACHE_MODULE</a>);
<a name="l214"><span class="linenum"> 214</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_VIEW_MODULE')" href="../../../_constants/P_VIEW_MODULE.html" onMouseOver="constPopup(event,'P_VIEW_MODULE')">P_VIEW_MODULE</a>', <a class="constant" onClick="logConstant('P_MODULE')" href="../../../_constants/P_MODULE.html" onMouseOver="constPopup(event,'P_MODULE')">P_MODULE</a> . 'view/');
<a name="l215"><span class="linenum"> 215</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_VIEW_')" href="../../../_constants/P_VIEW_.html" onMouseOver="constPopup(event,'P_VIEW_')">P_VIEW_</a>', <a class="constant" onClick="logConstant('P_VIEW_MODULE')" href="../../../_constants/P_VIEW_MODULE.html" onMouseOver="constPopup(event,'P_VIEW_MODULE')">P_VIEW_MODULE</a>);
<a name="l216"><span class="linenum"> 216</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_THEME_MODULE')" href="../../../_constants/P_THEME_MODULE.html" onMouseOver="constPopup(event,'P_THEME_MODULE')">P_THEME_MODULE</a>', <a class="constant" onClick="logConstant('P_VIEW_MODULE')" href="../../../_constants/P_VIEW_MODULE.html" onMouseOver="constPopup(event,'P_VIEW_MODULE')">P_VIEW_MODULE</a> . <a class="constant" onClick="logConstant('THEME')" href="../../../_constants/THEME.html" onMouseOver="constPopup(event,'THEME')">THEME</a> . '/');
<a name="l217"><span class="linenum"> 217</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_THEME_')" href="../../../_constants/P_THEME_.html" onMouseOver="constPopup(event,'P_THEME_')">P_THEME_</a>', <a class="constant" onClick="logConstant('P_THEME_MODULE')" href="../../../_constants/P_THEME_MODULE.html" onMouseOver="constPopup(event,'P_THEME_MODULE')">P_THEME_MODULE</a>);
<a name="l218"><span class="linenum"> 218</span></a>              if (<a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_MODULE')" href="../../../_constants/P_MODULE.html" onMouseOver="constPopup(event,'P_MODULE')">P_MODULE</a> . '<a class="filename" href="../../../common/config.php.html">common/config.php</a>') &amp;&amp; <a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a> = require (<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>)) {
<a name="l219"><span class="linenum"> 219</span></a>                  foreach (<a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a> as <a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a> =&gt; <a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>) {
<a name="l220"><span class="linenum"> 220</span></a>                      <a class="function" onClick="logFunction('SetConfig')" href="../../../_functions/setconfig.html" onMouseOver="funcPopup(event,'setconfig')">SetConfig</a>(<a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a>, <a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>);
<a name="l221"><span class="linenum"> 221</span></a>                  }
<a name="l222"><span class="linenum"> 222</span></a>              }
<a name="l223"><span class="linenum"> 223</span></a>          } else {
<a name="l224"><span class="linenum"> 224</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_RES_')" href="../../../_constants/P_RES_.html" onMouseOver="constPopup(event,'P_RES_')">P_RES_</a>', <a class="constant" onClick="logConstant('P_RES_APP')" href="../../../_constants/P_RES_APP.html" onMouseOver="constPopup(event,'P_RES_APP')">P_RES_APP</a>);
<a name="l225"><span class="linenum"> 225</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_RUN_')" href="../../../_constants/P_RUN_.html" onMouseOver="constPopup(event,'P_RUN_')">P_RUN_</a>', <a class="constant" onClick="logConstant('P_RUN_APP')" href="../../../_constants/P_RUN_APP.html" onMouseOver="constPopup(event,'P_RUN_APP')">P_RUN_APP</a>);
<a name="l226"><span class="linenum"> 226</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_HTML_')" href="../../../_constants/P_HTML_.html" onMouseOver="constPopup(event,'P_HTML_')">P_HTML_</a>', <a class="constant" onClick="logConstant('P_HTML_APP')" href="../../../_constants/P_HTML_APP.html" onMouseOver="constPopup(event,'P_HTML_APP')">P_HTML_APP</a>);
<a name="l227"><span class="linenum"> 227</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_CACHE_')" href="../../../_constants/P_CACHE_.html" onMouseOver="constPopup(event,'P_CACHE_')">P_CACHE_</a>', <a class="constant" onClick="logConstant('P_CACHE_APP')" href="../../../_constants/P_CACHE_APP.html" onMouseOver="constPopup(event,'P_CACHE_APP')">P_CACHE_APP</a>);
<a name="l228"><span class="linenum"> 228</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('U_RES_')" href="../../../_constants/U_RES_.html" onMouseOver="constPopup(event,'U_RES_')">U_RES_</a>', <a class="constant" onClick="logConstant('U_RES_APP')" href="../../../_constants/U_RES_APP.html" onMouseOver="constPopup(event,'U_RES_APP')">U_RES_APP</a>);
<a name="l229"><span class="linenum"> 229</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_VIEW_')" href="../../../_constants/P_VIEW_.html" onMouseOver="constPopup(event,'P_VIEW_')">P_VIEW_</a>', <a class="constant" onClick="logConstant('P_VIEW_APP')" href="../../../_constants/P_VIEW_APP.html" onMouseOver="constPopup(event,'P_VIEW_APP')">P_VIEW_APP</a>);
<a name="l230"><span class="linenum"> 230</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_THEME_')" href="../../../_constants/P_THEME_.html" onMouseOver="constPopup(event,'P_THEME_')">P_THEME_</a>', <a class="constant" onClick="logConstant('P_THEME_APP')" href="../../../_constants/P_THEME_APP.html" onMouseOver="constPopup(event,'P_THEME_APP')">P_THEME_APP</a>);
<a name="l231"><span class="linenum"> 231</span></a>          }
<a name="l232"><span class="linenum"> 232</span></a>          <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('ROUTE')" href="../../../_constants/ROUTE.html" onMouseOver="constPopup(event,'ROUTE')">ROUTE</a>', <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>);
<a name="l233"><span class="linenum"> 233</span></a>      }
<a name="l234"><span class="linenum"> 234</span></a>  
<a name="l235"><span class="linenum"> 235</span></a>      private static function <a class="function" onClick="logFunction('getPathInfo')" href="../../../_functions/getpathinfo.html" onMouseOver="funcPopup(event,'getpathinfo')">getPathInfo</a>()
<a name="l236"><span class="linenum"> 236</span></a>      {
<a name="l237"><span class="linenum"> 237</span></a>          if (isset(<a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>['DOCUMENT_URI'])) {
<a name="l238"><span class="linenum"> 238</span></a>              <a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a> = <a class="phpfunction" onClick="logFunction('substr')" href="../../../_functions/substr.html" onMouseOver="phpfuncPopup(event,'substr')">substr</a>(<a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>['DOCUMENT_URI'], strlen(<a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>['SCRIPT_NAME']));
<a name="l239"><span class="linenum"> 239</span></a>          } else {
<a name="l240"><span class="linenum"> 240</span></a>              <a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a> = <a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>['PATH_INFO'] ?? <a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>['REDIRECT_PATH_INFO'] ?? '';
<a name="l241"><span class="linenum"> 241</span></a>          }
<a name="l242"><span class="linenum"> 242</span></a>          <a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a> &amp;&amp; <a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a> = <a class="phpfunction" onClick="logFunction('trim')" href="../../../_functions/trim.html" onMouseOver="phpfuncPopup(event,'trim')">trim</a>(<a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a>, '/');
<a name="l243"><span class="linenum"> 243</span></a>          return <a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a>;
<a name="l244"><span class="linenum"> 244</span></a>      }
<a name="l245"><span class="linenum"> 245</span></a>      private static function <a class="function" onClick="logFunction('router')" href="../../../_functions/router.html" onMouseOver="funcPopup(event,'router')">router</a>(string <a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a> = '', string <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = '')
<a name="l246"><span class="linenum"> 246</span></a>      {
<a name="l247"><span class="linenum"> 247</span></a>          <a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a> || <a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a> = <a class="constant" onClick="logConstant('APP_NAME')" href="../../../_constants/APP_NAME.html" onMouseOver="constPopup(event,'APP_NAME')">APP_NAME</a>;
<a name="l248"><span class="linenum"> 248</span></a>          <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> || <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = self::<a class="function" onClick="logFunction('getVer')" href="../../../_functions/getver.html" onMouseOver="funcPopup(event,'getver')">getVer</a>(<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>);
<a name="l249"><span class="linenum"> 249</span></a>          <a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a> = <a class="constant" onClick="logConstant('P_ROOT')" href="../../../_constants/P_ROOT.html" onMouseOver="constPopup(event,'P_ROOT')">P_ROOT</a> . &quot;app/{<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>}/&quot;;
<a name="l250"><span class="linenum"> 250</span></a>          <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> &amp;&amp; <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = '/' . self::VER_PREFIX . <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>;
<a name="l251"><span class="linenum"> 251</span></a>          <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a> = <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = &quot;{<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>}{<a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>}/common/router.php&quot;) || <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = &quot;{<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>}{<a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>}/router.php&quot;) || <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = &quot;{<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>}/router.php&quot;) ? require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> : false;
<a name="l252"><span class="linenum"> 252</span></a>          isset(<a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>['PATH']) &amp;&amp; <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>['PATH'] = <a class="phpfunction" onClick="logFunction('trim')" href="../../../_functions/trim.html" onMouseOver="phpfuncPopup(event,'trim')">trim</a>(<a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>['PATH'], '/');
<a name="l253"><span class="linenum"> 253</span></a>          self::<a class="var it314" onMouseOver="hilite(314)" onMouseOut="lolite()" onClick="logVariable('ROUTER')" href="../../../_variables/ROUTER.html">$ROUTER</a>[&quot;{<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>}-{<a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>}&quot;] = <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>;
<a name="l254"><span class="linenum"> 254</span></a>          return <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>;
<a name="l255"><span class="linenum"> 255</span></a>      }
<a name="l256"><span class="linenum"> 256</span></a>      private static function <a class="function" onClick="logFunction('getModuleRouter')" href="../../../_functions/getmodulerouter.html" onMouseOver="funcPopup(event,'getmodulerouter')">getModuleRouter</a>(string <a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>, string <a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a> = '', string <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = '')
<a name="l257"><span class="linenum"> 257</span></a>      {
<a name="l258"><span class="linenum"> 258</span></a>          <a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a> || <a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a> = <a class="constant" onClick="logConstant('APP_NAME')" href="../../../_constants/APP_NAME.html" onMouseOver="constPopup(event,'APP_NAME')">APP_NAME</a>;
<a name="l259"><span class="linenum"> 259</span></a>          <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> || <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = self::<a class="function" onClick="logFunction('getVer')" href="../../../_functions/getver.html" onMouseOver="funcPopup(event,'getver')">getVer</a>(<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>);
<a name="l260"><span class="linenum"> 260</span></a>          <a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a> = &quot;{<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>}-{<a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>}&quot;;
<a name="l261"><span class="linenum"> 261</span></a>          <a class="var it322" onMouseOver="hilite(322)" onMouseOut="lolite()" onClick="logVariable('M')" href="../../../_variables/M.html">$M</a> = &quot;+{<a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>}&quot;;
<a name="l262"><span class="linenum"> 262</span></a>          if (isset(self::<a class="var it314" onMouseOver="hilite(314)" onMouseOut="lolite()" onClick="logVariable('ROUTER')" href="../../../_variables/ROUTER.html">$ROUTER</a>[<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>][<a class="var it322" onMouseOver="hilite(322)" onMouseOut="lolite()" onClick="logVariable('M')" href="../../../_variables/M.html">$M</a>])) {
<a name="l263"><span class="linenum"> 263</span></a>              return self::<a class="var it314" onMouseOver="hilite(314)" onMouseOut="lolite()" onClick="logVariable('ROUTER')" href="../../../_variables/ROUTER.html">$ROUTER</a>[<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>][<a class="var it322" onMouseOver="hilite(322)" onMouseOut="lolite()" onClick="logVariable('M')" href="../../../_variables/M.html">$M</a>];
<a name="l264"><span class="linenum"> 264</span></a>          }
<a name="l265"><span class="linenum"> 265</span></a>          <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> &amp;&amp; <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = '/' . self::VER_PREFIX . <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>;
<a name="l266"><span class="linenum"> 266</span></a>          <a class="var it323" onMouseOver="hilite(323)" onMouseOut="lolite()" onClick="logVariable('module')" href="../../../_variables/module.html">$module</a> = <a class="constant" onClick="logConstant('P_ROOT')" href="../../../_constants/P_ROOT.html" onMouseOver="constPopup(event,'P_ROOT')">P_ROOT</a> . &quot;app/{<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>}{<a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>}/{<a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>}/&quot;;
<a name="l267"><span class="linenum"> 267</span></a>          <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a> = <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = &quot;{<a class="var it323" onMouseOver="hilite(323)" onMouseOut="lolite()" onClick="logVariable('module')" href="../../../_variables/module.html">$module</a>}common/router.php&quot;) ? require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> : false;
<a name="l268"><span class="linenum"> 268</span></a>          if (isset(self::<a class="var it314" onMouseOver="hilite(314)" onMouseOut="lolite()" onClick="logVariable('ROUTER')" href="../../../_variables/ROUTER.html">$ROUTER</a>[<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>][<a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>]) &amp;&amp; <a class="phpfunction" onClick="logFunction('is_array')" href="../../../_functions/is_array.html" onMouseOver="phpfuncPopup(event,'is_array')">is_array</a>(self::<a class="var it314" onMouseOver="hilite(314)" onMouseOut="lolite()" onClick="logVariable('ROUTER')" href="../../../_variables/ROUTER.html">$ROUTER</a>[<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>][<a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>])) {
<a name="l269"><span class="linenum"> 269</span></a>              <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a> = <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a> ? <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a> + self::<a class="var it314" onMouseOver="hilite(314)" onMouseOut="lolite()" onClick="logVariable('ROUTER')" href="../../../_variables/ROUTER.html">$ROUTER</a>[<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>][<a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>] : self::<a class="var it314" onMouseOver="hilite(314)" onMouseOut="lolite()" onClick="logVariable('ROUTER')" href="../../../_variables/ROUTER.html">$ROUTER</a>[<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>][<a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>];
<a name="l270"><span class="linenum"> 270</span></a>          }
<a name="l271"><span class="linenum"> 271</span></a>          empty(self::<a class="var it314" onMouseOver="hilite(314)" onMouseOut="lolite()" onClick="logVariable('ROUTER')" href="../../../_variables/ROUTER.html">$ROUTER</a>[<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>]) ? self::<a class="var it314" onMouseOver="hilite(314)" onMouseOut="lolite()" onClick="logVariable('ROUTER')" href="../../../_variables/ROUTER.html">$ROUTER</a>[<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>] = [<a class="var it322" onMouseOver="hilite(322)" onMouseOut="lolite()" onClick="logVariable('M')" href="../../../_variables/M.html">$M</a> =&gt; <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>] : self::<a class="var it314" onMouseOver="hilite(314)" onMouseOut="lolite()" onClick="logVariable('ROUTER')" href="../../../_variables/ROUTER.html">$ROUTER</a>[<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>][<a class="var it322" onMouseOver="hilite(322)" onMouseOut="lolite()" onClick="logVariable('M')" href="../../../_variables/M.html">$M</a>] = <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>;
<a name="l272"><span class="linenum"> 272</span></a>          return <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>;
<a name="l273"><span class="linenum"> 273</span></a>      }
<a name="l274"><span class="linenum"> 274</span></a>      private static function <a class="function" onClick="logFunction('getVer')" href="../../../_functions/getver.html" onMouseOver="funcPopup(event,'getver')">getVer</a>(string <a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>)
<a name="l275"><span class="linenum"> 275</span></a>      {
<a name="l276"><span class="linenum"> 276</span></a>          if (isset(self::<a class="var it313" onMouseOver="hilite(313)" onMouseOut="lolite()" onClick="logVariable('VER')" href="../../../_variables/VER.html">$VER</a>[<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>])) {
<a name="l277"><span class="linenum"> 277</span></a>              return self::<a class="var it313" onMouseOver="hilite(313)" onMouseOut="lolite()" onClick="logVariable('VER')" href="../../../_variables/VER.html">$VER</a>[<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>];
<a name="l278"><span class="linenum"> 278</span></a>          }
<a name="l279"><span class="linenum"> 279</span></a>          <a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a> = <a class="constant" onClick="logConstant('P_ROOT')" href="../../../_constants/P_ROOT.html" onMouseOver="constPopup(event,'P_ROOT')">P_ROOT</a> . &quot;app/{<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>}/&quot;;
<a name="l280"><span class="linenum"> 280</span></a>          if (<a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a> = <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = &quot;{<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>}config.php&quot;) ? require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> : false) {
<a name="l281"><span class="linenum"> 281</span></a>              self::<a class="var it313" onMouseOver="hilite(313)" onMouseOut="lolite()" onClick="logVariable('VER')" href="../../../_variables/VER.html">$VER</a>[<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>] = <a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a>['<a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a>'][1] ?? <a class="var it246" onMouseOver="hilite(246)" onMouseOut="lolite()" onClick="logVariable('conf')" href="../../../_variables/conf.html">$conf</a>['<a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a>'][0] ?? null;
<a name="l282"><span class="linenum"> 282</span></a>          }
<a name="l283"><span class="linenum"> 283</span></a>          self::<a class="var it313" onMouseOver="hilite(313)" onMouseOut="lolite()" onClick="logVariable('VER')" href="../../../_variables/VER.html">$VER</a>[<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>] ?? self::<a class="var it313" onMouseOver="hilite(313)" onMouseOut="lolite()" onClick="logVariable('VER')" href="../../../_variables/VER.html">$VER</a>[<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>] = <a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a>;
<a name="l284"><span class="linenum"> 284</span></a>          return self::<a class="var it313" onMouseOver="hilite(313)" onMouseOut="lolite()" onClick="logVariable('VER')" href="../../../_variables/VER.html">$VER</a>[<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>];
<a name="l285"><span class="linenum"> 285</span></a>      }
<a name="l286"><span class="linenum"> 286</span></a>      private static function <a class="function" onClick="logFunction('getIsmodule')" href="../../../_functions/getismodule.html" onMouseOver="funcPopup(event,'getismodule')">getIsmodule</a>(string <a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a>, string <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>)
<a name="l287"><span class="linenum"> 287</span></a>      {
<a name="l288"><span class="linenum"> 288</span></a>          if (<a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a> === <a class="constant" onClick="logConstant('APP_NAME')" href="../../../_constants/APP_NAME.html" onMouseOver="constPopup(event,'APP_NAME')">APP_NAME</a>) {
<a name="l289"><span class="linenum"> 289</span></a>              return self::<a class="var it311" onMouseOver="hilite(311)" onMouseOut="lolite()" onClick="logVariable('IS_MODULE')" href="../../../_variables/IS_MODULE.html">$IS_MODULE</a>;
<a name="l290"><span class="linenum"> 290</span></a>          }
<a name="l291"><span class="linenum"> 291</span></a>          <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> || <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = self::<a class="function" onClick="logFunction('getVer')" href="../../../_functions/getver.html" onMouseOver="funcPopup(event,'getver')">getVer</a>(<a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a>);
<a name="l292"><span class="linenum"> 292</span></a>          <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> &amp;&amp; <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = '/' . self::VER_PREFIX . <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>;
<a name="l293"><span class="linenum"> 293</span></a>          if (!isset(self::<a class="var it316" onMouseOver="hilite(316)" onMouseOut="lolite()" onClick="logVariable('APP_ISMODULE')" href="../../../_variables/APP_ISMODULE.html">$APP_ISMODULE</a>[<a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a>])) {
<a name="l294"><span class="linenum"> 294</span></a>              if (<a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_ROOT')" href="../../../_constants/P_ROOT.html" onMouseOver="constPopup(event,'P_ROOT')">P_ROOT</a> . &quot;app/{<a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a>}{<a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>}/config.php&quot;) &amp;&amp; <a class="var it293" onMouseOver="hilite(293)" onMouseOut="lolite()" onClick="logVariable('config')" href="../../../_variables/config.html">$config</a> = require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>) {
<a name="l295"><span class="linenum"> 295</span></a>                  <a class="var it325" onMouseOver="hilite(325)" onMouseOut="lolite()" onClick="logVariable('ismodule')" href="../../../_variables/ismodule.html">$ismodule</a> = <a class="var it293" onMouseOver="hilite(293)" onMouseOut="lolite()" onClick="logVariable('config')" href="../../../_variables/config.html">$config</a>['ROUTER']['module'] ?? null;
<a name="l296"><span class="linenum"> 296</span></a>              }
<a name="l297"><span class="linenum"> 297</span></a>              if (!isset(<a class="var it325" onMouseOver="hilite(325)" onMouseOut="lolite()" onClick="logVariable('ismodule')" href="../../../_variables/ismodule.html">$ismodule</a>) &amp;&amp; <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_ROOT')" href="../../../_constants/P_ROOT.html" onMouseOver="constPopup(event,'P_ROOT')">P_ROOT</a> . &quot;app/{<a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a>}/config.php&quot;) &amp;&amp; <a class="var it293" onMouseOver="hilite(293)" onMouseOut="lolite()" onClick="logVariable('config')" href="../../../_variables/config.html">$config</a> = require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>) {
<a name="l298"><span class="linenum"> 298</span></a>                  <a class="var it325" onMouseOver="hilite(325)" onMouseOut="lolite()" onClick="logVariable('ismodule')" href="../../../_variables/ismodule.html">$ismodule</a> = <a class="var it293" onMouseOver="hilite(293)" onMouseOut="lolite()" onClick="logVariable('config')" href="../../../_variables/config.html">$config</a>['ROUTER']['module'] ?? null;
<a name="l299"><span class="linenum"> 299</span></a>              }
<a name="l300"><span class="linenum"> 300</span></a>              if (!isset(<a class="var it325" onMouseOver="hilite(325)" onMouseOut="lolite()" onClick="logVariable('ismodule')" href="../../../_variables/ismodule.html">$ismodule</a>) &amp;&amp; <a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_ROOT')" href="../../../_constants/P_ROOT.html" onMouseOver="constPopup(event,'P_ROOT')">P_ROOT</a> . '<a class="filename" href="../../../common/config.php.html">common/config.php</a>') &amp;&amp; <a class="var it293" onMouseOver="hilite(293)" onMouseOut="lolite()" onClick="logVariable('config')" href="../../../_variables/config.html">$config</a> = require <a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>) {
<a name="l301"><span class="linenum"> 301</span></a>                  <a class="var it325" onMouseOver="hilite(325)" onMouseOut="lolite()" onClick="logVariable('ismodule')" href="../../../_variables/ismodule.html">$ismodule</a> = <a class="var it293" onMouseOver="hilite(293)" onMouseOut="lolite()" onClick="logVariable('config')" href="../../../_variables/config.html">$config</a>['ROUTER']['module'] ?? false;
<a name="l302"><span class="linenum"> 302</span></a>              }
<a name="l303"><span class="linenum"> 303</span></a>              self::<a class="var it316" onMouseOver="hilite(316)" onMouseOut="lolite()" onClick="logVariable('APP_ISMODULE')" href="../../../_variables/APP_ISMODULE.html">$APP_ISMODULE</a>[<a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a>] = <a class="var it325" onMouseOver="hilite(325)" onMouseOut="lolite()" onClick="logVariable('ismodule')" href="../../../_variables/ismodule.html">$ismodule</a>;
<a name="l304"><span class="linenum"> 304</span></a>          }
<a name="l305"><span class="linenum"> 305</span></a>          return self::<a class="var it316" onMouseOver="hilite(316)" onMouseOut="lolite()" onClick="logVariable('APP_ISMODULE')" href="../../../_variables/APP_ISMODULE.html">$APP_ISMODULE</a>[<a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a>];
<a name="l306"><span class="linenum"> 306</span></a>      }
<a name="l307"><span class="linenum"> 307</span></a>      private static function <a class="function" onClick="logFunction('getAppName')" href="../../../_functions/getappname.html" onMouseOver="funcPopup(event,'getappname')">getAppName</a>(string <a class="var it262" onMouseOver="hilite(262)" onMouseOut="lolite()" onClick="logVariable('php')" href="../../../_variables/php.html">$php</a>)
<a name="l308"><span class="linenum"> 308</span></a>      {
<a name="l309"><span class="linenum"> 309</span></a>          if (isset(self::<a class="var it317" onMouseOver="hilite(317)" onMouseOut="lolite()" onClick="logVariable('APP_MAP')" href="../../../_variables/APP_MAP.html">$APP_MAP</a>[<a class="var it262" onMouseOver="hilite(262)" onMouseOut="lolite()" onClick="logVariable('php')" href="../../../_variables/php.html">$php</a>])) {
<a name="l310"><span class="linenum"> 310</span></a>              return self::<a class="var it317" onMouseOver="hilite(317)" onMouseOut="lolite()" onClick="logVariable('APP_MAP')" href="../../../_variables/APP_MAP.html">$APP_MAP</a>[<a class="var it262" onMouseOver="hilite(262)" onMouseOut="lolite()" onClick="logVariable('php')" href="../../../_variables/php.html">$php</a>];
<a name="l311"><span class="linenum"> 311</span></a>          }
<a name="l312"><span class="linenum"> 312</span></a>          if (<a class="phpfunction" onClick="logFunction('is_file')" href="../../../_functions/is_file.html" onMouseOver="phpfuncPopup(event,'is_file')">is_file</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a> = <a class="constant" onClick="logConstant('P_IN')" href="../../../_constants/P_IN.html" onMouseOver="constPopup(event,'P_IN')">P_IN</a> . <a class="var it262" onMouseOver="hilite(262)" onMouseOut="lolite()" onClick="logVariable('php')" href="../../../_variables/php.html">$php</a>) &amp;&amp; <a class="var it36" onMouseOver="hilite(36)" onMouseOut="lolite()" onClick="logVariable('str')" href="../../../_variables/str.html">$str</a> = <a class="phpfunction" onClick="logFunction('file_get_contents')" href="../../../_functions/file_get_contents.html" onMouseOver="phpfuncPopup(event,'file_get_contents')">file_get_contents</a>(<a class="var it123" onMouseOver="hilite(123)" onMouseOut="lolite()" onClick="logVariable('file')" href="../../../_variables/file.html">$file</a>)) {
<a name="l313"><span class="linenum"> 313</span></a>              <a class="var it114" onMouseOver="hilite(114)" onMouseOut="lolite()" onClick="logVariable('preg')" href="../../../_variables/preg.html">$preg</a> = '/define.+\,\s*\'(\w+)\'\s*\)/';
<a name="l314"><span class="linenum"> 314</span></a>              <a class="phpfunction" onClick="logFunction('preg_match')" href="../../../_functions/preg_match.html" onMouseOver="phpfuncPopup(event,'preg_match')">preg_match</a>(<a class="var it114" onMouseOver="hilite(114)" onMouseOut="lolite()" onClick="logVariable('preg')" href="../../../_variables/preg.html">$preg</a>, <a class="var it36" onMouseOver="hilite(36)" onMouseOut="lolite()" onClick="logVariable('str')" href="../../../_variables/str.html">$str</a>, <a class="var it117" onMouseOver="hilite(117)" onMouseOut="lolite()" onClick="logVariable('match')" href="../../../_variables/match.html">$match</a>);
<a name="l315"><span class="linenum"> 315</span></a>              self::<a class="var it317" onMouseOver="hilite(317)" onMouseOut="lolite()" onClick="logVariable('APP_MAP')" href="../../../_variables/APP_MAP.html">$APP_MAP</a>[<a class="var it262" onMouseOver="hilite(262)" onMouseOut="lolite()" onClick="logVariable('php')" href="../../../_variables/php.html">$php</a>] = <a class="var it117" onMouseOver="hilite(117)" onMouseOut="lolite()" onClick="logVariable('match')" href="../../../_variables/match.html">$match</a>[1] ?? false;
<a name="l316"><span class="linenum"> 316</span></a>          }
<a name="l317"><span class="linenum"> 317</span></a>          return self::<a class="var it317" onMouseOver="hilite(317)" onMouseOut="lolite()" onClick="logVariable('APP_MAP')" href="../../../_variables/APP_MAP.html">$APP_MAP</a>[<a class="var it262" onMouseOver="hilite(262)" onMouseOut="lolite()" onClick="logVariable('php')" href="../../../_variables/php.html">$php</a>];
<a name="l318"><span class="linenum"> 318</span></a>      }
<a name="l319"><span class="linenum"> 319</span></a>      public static function <a class="function" onClick="logFunction('setVer')" href="../../../_functions/setver.html" onMouseOver="funcPopup(event,'setver')">setVer</a>()
<a name="l320"><span class="linenum"> 320</span></a>      {
<a name="l321"><span class="linenum"> 321</span></a>          if (isset(<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['<a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a>'][1])) {
<a name="l322"><span class="linenum"> 322</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a>', <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['<a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a>'][1]);
<a name="l323"><span class="linenum"> 323</span></a>          } elseif (isset(<a class="var it126" onMouseOver="hilite(126)" onMouseOut="lolite()" onClick="logVariable('_GET')" href="../../../_variables/_GET.html">$_GET</a>['ver']) &amp;&amp; (<a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = <a class="phpfunction" onClick="logFunction('trim')" href="../../../_functions/trim.html" onMouseOver="phpfuncPopup(event,'trim')">trim</a>(<a class="var it126" onMouseOver="hilite(126)" onMouseOut="lolite()" onClick="logVariable('_GET')" href="../../../_variables/_GET.html">$_GET</a>['ver'])) &amp;&amp; <a class="phpfunction" onClick="logFunction('file_exists')" href="../../../_functions/file_exists.html" onMouseOver="phpfuncPopup(event,'file_exists')">file_exists</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a> = <a class="constant" onClick="logConstant('P_APP')" href="../../../_constants/P_APP.html" onMouseOver="constPopup(event,'P_APP')">P_APP</a> . self::VER_PREFIX . &quot;{<a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>}/&quot;)) {
<a name="l324"><span class="linenum"> 324</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a>', <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>);
<a name="l325"><span class="linenum"> 325</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_APP_VER')" href="../../../_constants/P_APP_VER.html" onMouseOver="constPopup(event,'P_APP_VER')">P_APP_VER</a>', <a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>);
<a name="l326"><span class="linenum"> 326</span></a>          } elseif ((<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a> = <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['HEADER_VER'] ?? false) &amp;&amp; (<a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = <a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>[&quot;HTTP_{<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>}&quot;] ?? '')) {
<a name="l327"><span class="linenum"> 327</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a>', <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>);
<a name="l328"><span class="linenum"> 328</span></a>          } else {
<a name="l329"><span class="linenum"> 329</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a>', <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['<a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a>'][0] ?? '');
<a name="l330"><span class="linenum"> 330</span></a>          }
<a name="l331"><span class="linenum"> 331</span></a>          if (!<a class="phpfunction" onClick="logFunction('defined')" href="../../../_functions/defined.html" onMouseOver="phpfuncPopup(event,'defined')">defined</a>('<a class="constant" onClick="logConstant('P_APP_VER')" href="../../../_constants/P_APP_VER.html" onMouseOver="constPopup(event,'P_APP_VER')">P_APP_VER</a>')) {
<a name="l332"><span class="linenum"> 332</span></a>              <a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a> = <a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a> ? <a class="constant" onClick="logConstant('P_APP')" href="../../../_constants/P_APP.html" onMouseOver="constPopup(event,'P_APP')">P_APP</a> . self::VER_PREFIX . <a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a> . '/' : <a class="constant" onClick="logConstant('P_APP')" href="../../../_constants/P_APP.html" onMouseOver="constPopup(event,'P_APP')">P_APP</a>;
<a name="l333"><span class="linenum"> 333</span></a>              if (!<a class="phpfunction" onClick="logFunction('file_exists')" href="../../../_functions/file_exists.html" onMouseOver="phpfuncPopup(event,'file_exists')">file_exists</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>)) {
<a name="l334"><span class="linenum"> 334</span></a>                  throw new \Exception(&quot;directory does not exist: {<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>}&quot;);
<a name="l335"><span class="linenum"> 335</span></a>              }
<a name="l336"><span class="linenum"> 336</span></a>              <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_APP_VER')" href="../../../_constants/P_APP_VER.html" onMouseOver="constPopup(event,'P_APP_VER')">P_APP_VER</a>', <a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>);
<a name="l337"><span class="linenum"> 337</span></a>          }
<a name="l338"><span class="linenum"> 338</span></a>          <a class="var it326" onMouseOver="hilite(326)" onMouseOut="lolite()" onClick="logVariable('app_path')" href="../../../_variables/app_path.html">$app_path</a> = <a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a> ? <a class="constant" onClick="logConstant('APP_NAME')" href="../../../_constants/APP_NAME.html" onMouseOver="constPopup(event,'APP_NAME')">APP_NAME</a> . '/' . self::VER_PREFIX . <a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a> . '/' : <a class="constant" onClick="logConstant('APP_NAME')" href="../../../_constants/APP_NAME.html" onMouseOver="constPopup(event,'APP_NAME')">APP_NAME</a> . '/';
<a name="l339"><span class="linenum"> 339</span></a>          self::<a class="var it313" onMouseOver="hilite(313)" onMouseOut="lolite()" onClick="logVariable('VER')" href="../../../_variables/VER.html">$VER</a>[<a class="constant" onClick="logConstant('APP_NAME')" href="../../../_constants/APP_NAME.html" onMouseOver="constPopup(event,'APP_NAME')">APP_NAME</a>] = <a class="constant" onClick="logConstant('VER')" href="../../../_constants/VER.html" onMouseOver="constPopup(event,'VER')">VER</a>;
<a name="l340"><span class="linenum"> 340</span></a>          <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_RES_VER')" href="../../../_constants/P_RES_VER.html" onMouseOver="constPopup(event,'P_RES_VER')">P_RES_VER</a>', <a class="constant" onClick="logConstant('P_PUBLIC')" href="../../../_constants/P_PUBLIC.html" onMouseOver="constPopup(event,'P_PUBLIC')">P_PUBLIC</a> . 'res/' . <a class="var it326" onMouseOver="hilite(326)" onMouseOut="lolite()" onClick="logVariable('app_path')" href="../../../_variables/app_path.html">$app_path</a>);
<a name="l341"><span class="linenum"> 341</span></a>          <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_RUN_VER')" href="../../../_constants/P_RUN_VER.html" onMouseOver="constPopup(event,'P_RUN_VER')">P_RUN_VER</a>', <a class="constant" onClick="logConstant('P_RUN')" href="../../../_constants/P_RUN.html" onMouseOver="constPopup(event,'P_RUN')">P_RUN</a> . <a class="var it326" onMouseOver="hilite(326)" onMouseOut="lolite()" onClick="logVariable('app_path')" href="../../../_variables/app_path.html">$app_path</a>);
<a name="l342"><span class="linenum"> 342</span></a>          <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_HTML_VER')" href="../../../_constants/P_HTML_VER.html" onMouseOver="constPopup(event,'P_HTML_VER')">P_HTML_VER</a>', <a class="constant" onClick="logConstant('P_HTML')" href="../../../_constants/P_HTML.html" onMouseOver="constPopup(event,'P_HTML')">P_HTML</a> . <a class="var it326" onMouseOver="hilite(326)" onMouseOut="lolite()" onClick="logVariable('app_path')" href="../../../_variables/app_path.html">$app_path</a>);
<a name="l343"><span class="linenum"> 343</span></a>          <a class="phpfunction" onClick="logFunction('define')" href="../../../_functions/define.html" onMouseOver="phpfuncPopup(event,'define')">define</a>('<a class="constant" onClick="logConstant('P_CACHE_VER')" href="../../../_constants/P_CACHE_VER.html" onMouseOver="constPopup(event,'P_CACHE_VER')">P_CACHE_VER</a>', <a class="constant" onClick="logConstant('P_CACHE')" href="../../../_constants/P_CACHE.html" onMouseOver="constPopup(event,'P_CACHE')">P_CACHE</a> . <a class="var it326" onMouseOver="hilite(326)" onMouseOut="lolite()" onClick="logVariable('app_path')" href="../../../_variables/app_path.html">$app_path</a>);
<a name="l344"><span class="linenum"> 344</span></a>      }
<a name="l345"><span class="linenum"> 345</span></a>      private static function <a class="function" onClick="logFunction('format')" href="../../../_functions/format.html" onMouseOver="funcPopup(event,'format')">format</a>(string <a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>, <a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>, string <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>)
<a name="l346"><span class="linenum"> 346</span></a>      {
<a name="l347"><span class="linenum"> 347</span></a>          <a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a> || <a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a> = <a class="constant" onClick="logConstant('APP_NAME')" href="../../../_constants/APP_NAME.html" onMouseOver="constPopup(event,'APP_NAME')">APP_NAME</a>;
<a name="l348"><span class="linenum"> 348</span></a>          <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> || <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = self::<a class="function" onClick="logFunction('getVer')" href="../../../_functions/getver.html" onMouseOver="funcPopup(event,'getver')">getVer</a>(<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>);
<a name="l349"><span class="linenum"> 349</span></a>          <a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a> = &quot;{<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>}-{<a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>}-{<a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>}&quot;;
<a name="l350"><span class="linenum"> 350</span></a>          if (isset(self::<a class="var it315" onMouseOver="hilite(315)" onMouseOut="lolite()" onClick="logVariable('FORMAT')" href="../../../_variables/FORMAT.html">$FORMAT</a>[<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>])) {
<a name="l351"><span class="linenum"> 351</span></a>              return self::<a class="var it315" onMouseOver="hilite(315)" onMouseOut="lolite()" onClick="logVariable('FORMAT')" href="../../../_variables/FORMAT.html">$FORMAT</a>[<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>];
<a name="l352"><span class="linenum"> 352</span></a>          }
<a name="l353"><span class="linenum"> 353</span></a>          if (!<a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a> = <a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a> ? self::<a class="function" onClick="logFunction('getModuleRouter')" href="../../../_functions/getmodulerouter.html" onMouseOver="funcPopup(event,'getmodulerouter')">getModuleRouter</a>(<a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>, <a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>) : (self::<a class="var it314" onMouseOver="hilite(314)" onMouseOut="lolite()" onClick="logVariable('ROUTER')" href="../../../_variables/ROUTER.html">$ROUTER</a>[&quot;{<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>}-{<a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>}&quot;] ?? self::<a class="function" onClick="logFunction('router')" href="../../../_functions/router.html" onMouseOver="funcPopup(event,'router')">router</a>(<a class="var it32" onMouseOver="hilite(32)" onMouseOut="lolite()" onClick="logVariable('name')" href="../../../_variables/name.html">$name</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>))) {
<a name="l354"><span class="linenum"> 354</span></a>              <a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a> = false;
<a name="l355"><span class="linenum"> 355</span></a>          } else {
<a name="l356"><span class="linenum"> 356</span></a>              if (isset(<a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>['PATH'])) {
<a name="l357"><span class="linenum"> 357</span></a>                  <a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>[0] = <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>['PATH'] ?: '';
<a name="l358"><span class="linenum"> 358</span></a>                  unset(<a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>['PATH']);
<a name="l359"><span class="linenum"> 359</span></a>              } else {
<a name="l360"><span class="linenum"> 360</span></a>                  <a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>[0] = '';
<a name="l361"><span class="linenum"> 361</span></a>              }
<a name="l362"><span class="linenum"> 362</span></a>              foreach (<a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a> as <a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a> =&gt; <a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>) {
<a name="l363"><span class="linenum"> 363</span></a>                  if ('*' === <a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a> || '/' !== <a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a>[0] || isset(<a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>['module'])) {
<a name="l364"><span class="linenum"> 364</span></a>                      continue;
<a name="l365"><span class="linenum"> 365</span></a>                  }
<a name="l366"><span class="linenum"> 366</span></a>                  <a class="var it299" onMouseOver="hilite(299)" onMouseOut="lolite()" onClick="logVariable('ctrl')" href="../../../_variables/ctrl.html">$ctrl</a> = <a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>['ctrl'] ?? 'index';
<a name="l367"><span class="linenum"> 367</span></a>                  <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a> = <a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>['act'] ?? 'index';
<a name="l368"><span class="linenum"> 368</span></a>                  <a class="var it106" onMouseOver="hilite(106)" onMouseOut="lolite()" onClick="logVariable('a')" href="../../../_variables/a.html">$a</a> = <a class="phpfunction" onClick="logFunction('str_replace')" href="../../../_functions/str_replace.html" onMouseOver="phpfuncPopup(event,'str_replace')">str_replace</a>('*', '', <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a>);
<a name="l369"><span class="linenum"> 369</span></a>                  <a class="var it327" onMouseOver="hilite(327)" onMouseOut="lolite()" onClick="logVariable('d')" href="../../../_variables/d.html">$d</a> = [<a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a>, <a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>['params'] ?? false];
<a name="l370"><span class="linenum"> 370</span></a>                  if (<a class="var it106" onMouseOver="hilite(106)" onMouseOut="lolite()" onClick="logVariable('a')" href="../../../_variables/a.html">$a</a> !== <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a>) {
<a name="l371"><span class="linenum"> 371</span></a>                      <a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>[<a class="var it299" onMouseOver="hilite(299)" onMouseOut="lolite()" onClick="logVariable('ctrl')" href="../../../_variables/ctrl.html">$ctrl</a>]['*'][<a class="var it106" onMouseOver="hilite(106)" onMouseOut="lolite()" onClick="logVariable('a')" href="../../../_variables/a.html">$a</a>] = <a class="var it327" onMouseOver="hilite(327)" onMouseOut="lolite()" onClick="logVariable('d')" href="../../../_variables/d.html">$d</a>;
<a name="l372"><span class="linenum"> 372</span></a>                  } else {
<a name="l373"><span class="linenum"> 373</span></a>                      <a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>[<a class="var it299" onMouseOver="hilite(299)" onMouseOut="lolite()" onClick="logVariable('ctrl')" href="../../../_variables/ctrl.html">$ctrl</a>][<a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a>] = <a class="var it327" onMouseOver="hilite(327)" onMouseOut="lolite()" onClick="logVariable('d')" href="../../../_variables/d.html">$d</a>;
<a name="l374"><span class="linenum"> 374</span></a>                  }
<a name="l375"><span class="linenum"> 375</span></a>              }
<a name="l376"><span class="linenum"> 376</span></a>          }
<a name="l377"><span class="linenum"> 377</span></a>          self::<a class="var it315" onMouseOver="hilite(315)" onMouseOut="lolite()" onClick="logVariable('FORMAT')" href="../../../_variables/FORMAT.html">$FORMAT</a>[<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>] = <a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>;
<a name="l378"><span class="linenum"> 378</span></a>          return <a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>;
<a name="l379"><span class="linenum"> 379</span></a>      }
<a name="l380"><span class="linenum"> 380</span></a>      private static function <a class="function" onClick="logFunction('getUf')" href="../../../_functions/getuf.html" onMouseOver="funcPopup(event,'getuf')">getUf</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>)
<a name="l381"><span class="linenum"> 381</span></a>      {
<a name="l382"><span class="linenum"> 382</span></a>          if (!<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a> || '/' === <a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>) {
<a name="l383"><span class="linenum"> 383</span></a>              self::<a class="var it311" onMouseOver="hilite(311)" onMouseOut="lolite()" onClick="logVariable('IS_MODULE')" href="../../../_variables/IS_MODULE.html">$IS_MODULE</a> &amp;&amp; <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['m'] = <a class="constant" onClick="logConstant('ROUTE')" href="../../../_constants/ROUTE.html" onMouseOver="constPopup(event,'ROUTE')">ROUTE</a>['module'];
<a name="l384"><span class="linenum"> 384</span></a>              <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['c'] = <a class="constant" onClick="logConstant('ROUTE')" href="../../../_constants/ROUTE.html" onMouseOver="constPopup(event,'ROUTE')">ROUTE</a>['ctrl'];
<a name="l385"><span class="linenum"> 385</span></a>              <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['a'] = 'index';
<a name="l386"><span class="linenum"> 386</span></a>              return <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>;
<a name="l387"><span class="linenum"> 387</span></a>          }
<a name="l388"><span class="linenum"> 388</span></a>          <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a> = <a class="phpfunction" onClick="logFunction('is_array')" href="../../../_functions/is_array.html" onMouseOver="phpfuncPopup(event,'is_array')">is_array</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>) ? <a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a> : <a class="phpfunction" onClick="logFunction('explode')" href="../../../_functions/explode.html" onMouseOver="phpfuncPopup(event,'explode')">explode</a>('/', <a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>);
<a name="l389"><span class="linenum"> 389</span></a>          if ('.php' === <a class="phpfunction" onClick="logFunction('substr')" href="../../../_functions/substr.html" onMouseOver="phpfuncPopup(event,'substr')">substr</a>(<a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[0], -4)) {
<a name="l390"><span class="linenum"> 390</span></a>              <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['app'][0] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[0];
<a name="l391"><span class="linenum"> 391</span></a>              <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['app'][1] = self::<a class="function" onClick="logFunction('getAppName')" href="../../../_functions/getappname.html" onMouseOver="funcPopup(event,'getappname')">getAppName</a>(<a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['app'][0]);
<a name="l392"><span class="linenum"> 392</span></a>              if (<a class="var it325" onMouseOver="hilite(325)" onMouseOut="lolite()" onClick="logVariable('ismodule')" href="../../../_variables/ismodule.html">$ismodule</a> = self::<a class="function" onClick="logFunction('getIsmodule')" href="../../../_functions/getismodule.html" onMouseOver="funcPopup(event,'getismodule')">getIsmodule</a>(<a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['app'][1], <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>)) {
<a name="l393"><span class="linenum"> 393</span></a>                  if (4 !== <a class="phpfunction" onClick="logFunction('count')" href="../../../_functions/count.html" onMouseOver="phpfuncPopup(event,'count')">count</a>(<a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>)) {
<a name="l394"><span class="linenum"> 394</span></a>                      throw new \Exception('RUL(参数错误)，格式：&quot;入口文件名/模块名/控制器/操作&quot;');
<a name="l395"><span class="linenum"> 395</span></a>                  }
<a name="l396"><span class="linenum"> 396</span></a>  
<a name="l397"><span class="linenum"> 397</span></a>                  <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['m'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[1];
<a name="l398"><span class="linenum"> 398</span></a>                  <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['c'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[2];
<a name="l399"><span class="linenum"> 399</span></a>                  <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['a'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[3];
<a name="l400"><span class="linenum"> 400</span></a>              } else {
<a name="l401"><span class="linenum"> 401</span></a>                  if (3 !== <a class="phpfunction" onClick="logFunction('count')" href="../../../_functions/count.html" onMouseOver="phpfuncPopup(event,'count')">count</a>(<a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>)) {
<a name="l402"><span class="linenum"> 402</span></a>                      throw new \Exception('<a class="function" onClick="logFunction('URL')" href="../../../_functions/url.html" onMouseOver="funcPopup(event,'url')">URL</a>(参数错误)，格式：&quot;入口文件名/控制器/操作&quot;');
<a name="l403"><span class="linenum"> 403</span></a>                  }
<a name="l404"><span class="linenum"> 404</span></a>  
<a name="l405"><span class="linenum"> 405</span></a>                  <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['c'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[1];
<a name="l406"><span class="linenum"> 406</span></a>                  <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['a'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[2];
<a name="l407"><span class="linenum"> 407</span></a>              }
<a name="l408"><span class="linenum"> 408</span></a>          } elseif (self::<a class="var it311" onMouseOver="hilite(311)" onMouseOut="lolite()" onClick="logVariable('IS_MODULE')" href="../../../_variables/IS_MODULE.html">$IS_MODULE</a>) {
<a name="l409"><span class="linenum"> 409</span></a>              switch (<a class="phpfunction" onClick="logFunction('count')" href="../../../_functions/count.html" onMouseOver="phpfuncPopup(event,'count')">count</a>(<a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>)) {
<a name="l410"><span class="linenum"> 410</span></a>                  case 1:
<a name="l411"><span class="linenum"> 411</span></a>                      <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['m'] = <a class="constant" onClick="logConstant('ROUTE')" href="../../../_constants/ROUTE.html" onMouseOver="constPopup(event,'ROUTE')">ROUTE</a>['module'];
<a name="l412"><span class="linenum"> 412</span></a>                      <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['c'] = <a class="constant" onClick="logConstant('ROUTE')" href="../../../_constants/ROUTE.html" onMouseOver="constPopup(event,'ROUTE')">ROUTE</a>['ctrl'];
<a name="l413"><span class="linenum"> 413</span></a>                      <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['a'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[0];
<a name="l414"><span class="linenum"> 414</span></a>                      break;
<a name="l415"><span class="linenum"> 415</span></a>                  case 2:
<a name="l416"><span class="linenum"> 416</span></a>                      <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['m'] = <a class="constant" onClick="logConstant('ROUTE')" href="../../../_constants/ROUTE.html" onMouseOver="constPopup(event,'ROUTE')">ROUTE</a>['module'];
<a name="l417"><span class="linenum"> 417</span></a>                      <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['c'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[0];
<a name="l418"><span class="linenum"> 418</span></a>                      <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['a'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[1];
<a name="l419"><span class="linenum"> 419</span></a>                      break;
<a name="l420"><span class="linenum"> 420</span></a>                  case 3:
<a name="l421"><span class="linenum"> 421</span></a>                      <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['m'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[0];
<a name="l422"><span class="linenum"> 422</span></a>                      <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['c'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[1];
<a name="l423"><span class="linenum"> 423</span></a>                      <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['a'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[2];
<a name="l424"><span class="linenum"> 424</span></a>                      break;
<a name="l425"><span class="linenum"> 425</span></a>              }
<a name="l426"><span class="linenum"> 426</span></a>          } else {
<a name="l427"><span class="linenum"> 427</span></a>              switch (<a class="phpfunction" onClick="logFunction('count')" href="../../../_functions/count.html" onMouseOver="phpfuncPopup(event,'count')">count</a>(<a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>)) {
<a name="l428"><span class="linenum"> 428</span></a>                  case 1:
<a name="l429"><span class="linenum"> 429</span></a>                      <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['c'] = <a class="constant" onClick="logConstant('ROUTE')" href="../../../_constants/ROUTE.html" onMouseOver="constPopup(event,'ROUTE')">ROUTE</a>['ctrl'];
<a name="l430"><span class="linenum"> 430</span></a>                      <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['a'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[0];
<a name="l431"><span class="linenum"> 431</span></a>                      break;
<a name="l432"><span class="linenum"> 432</span></a>                  case 2:
<a name="l433"><span class="linenum"> 433</span></a>                      <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['c'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[0];
<a name="l434"><span class="linenum"> 434</span></a>                      <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>['a'] = <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>[1];
<a name="l435"><span class="linenum"> 435</span></a>                      break;
<a name="l436"><span class="linenum"> 436</span></a>              }
<a name="l437"><span class="linenum"> 437</span></a>          }
<a name="l438"><span class="linenum"> 438</span></a>          return <a class="var it328" onMouseOver="hilite(328)" onMouseOut="lolite()" onClick="logVariable('uf')" href="../../../_variables/uf.html">$uf</a>;
<a name="l439"><span class="linenum"> 439</span></a>      }
<a name="l440"><span class="linenum"> 440</span></a>      private static function <a class="function" onClick="logFunction('getInPath')" href="../../../_functions/getinpath.html" onMouseOver="funcPopup(event,'getinpath')">getInPath</a>(<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = '', <a class="var it329" onMouseOver="hilite(329)" onMouseOut="lolite()" onClick="logVariable('param')" href="../../../_variables/param.html">$param</a> = false)
<a name="l441"><span class="linenum"> 441</span></a>      {
<a name="l442"><span class="linenum"> 442</span></a>          if (isset(<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['app'])) {
<a name="l443"><span class="linenum"> 443</span></a>              <a class="var it262" onMouseOver="hilite(262)" onMouseOut="lolite()" onClick="logVariable('php')" href="../../../_variables/php.html">$php</a> = <a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['app'][0];
<a name="l444"><span class="linenum"> 444</span></a>              <a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a> = <a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['app'][1];
<a name="l445"><span class="linenum"> 445</span></a>          } else {
<a name="l446"><span class="linenum"> 446</span></a>              <a class="var it262" onMouseOver="hilite(262)" onMouseOut="lolite()" onClick="logVariable('php')" href="../../../_variables/php.html">$php</a> = <a class="constant" onClick="logConstant('PHP_FILE')" href="../../../_constants/PHP_FILE.html" onMouseOver="constPopup(event,'PHP_FILE')">PHP_FILE</a>;
<a name="l447"><span class="linenum"> 447</span></a>              <a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a> = <a class="constant" onClick="logConstant('APP_NAME')" href="../../../_constants/APP_NAME.html" onMouseOver="constPopup(event,'APP_NAME')">APP_NAME</a>;
<a name="l448"><span class="linenum"> 448</span></a>          }
<a name="l449"><span class="linenum"> 449</span></a>          <a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a> = <a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['m'] ?? <a class="constant" onClick="logConstant('ROUTE')" href="../../../_constants/ROUTE.html" onMouseOver="constPopup(event,'ROUTE')">ROUTE</a>['module'] ?? false;
<a name="l450"><span class="linenum"> 450</span></a>          if (<a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> = self::<a class="function" onClick="logFunction('format')" href="../../../_functions/format.html" onMouseOver="funcPopup(event,'format')">format</a>(<a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a>, <a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>)) {
<a name="l451"><span class="linenum"> 451</span></a>              <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> = isset(<a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>[0]) ? <a class="constant" onClick="logConstant('U_HOME')" href="../../../_constants/U_HOME.html" onMouseOver="constPopup(event,'U_HOME')">U_HOME</a> . <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>[0] : <a class="constant" onClick="logConstant('U_ROOT')" href="../../../_constants/U_ROOT.html" onMouseOver="constPopup(event,'U_ROOT')">U_ROOT</a>;
<a name="l452"><span class="linenum"> 452</span></a>          } else {
<a name="l453"><span class="linenum"> 453</span></a>              <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> = !<a class="var it329" onMouseOver="hilite(329)" onMouseOut="lolite()" onClick="logVariable('param')" href="../../../_variables/param.html">$param</a> &amp;&amp; 'index.php' === <a class="var it262" onMouseOver="hilite(262)" onMouseOut="lolite()" onClick="logVariable('php')" href="../../../_variables/php.html">$php</a> ? <a class="constant" onClick="logConstant('U_ROOT')" href="../../../_constants/U_ROOT.html" onMouseOver="constPopup(event,'U_ROOT')">U_ROOT</a> : <a class="constant" onClick="logConstant('U_HOME')" href="../../../_constants/U_HOME.html" onMouseOver="constPopup(event,'U_HOME')">U_HOME</a> . <a class="var it262" onMouseOver="hilite(262)" onMouseOut="lolite()" onClick="logVariable('php')" href="../../../_variables/php.html">$php</a>;
<a name="l454"><span class="linenum"> 454</span></a>          }
<a name="l455"><span class="linenum"> 455</span></a>          return <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a>;
<a name="l456"><span class="linenum"> 456</span></a>      }
<a name="l457"><span class="linenum"> 457</span></a>      public static function <a class="function" onClick="logFunction('U0')" href="../../../_functions/u0.html" onMouseOver="funcPopup(event,'u0')">U0</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>, <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = '')
<a name="l458"><span class="linenum"> 458</span></a>      {
<a name="l459"><span class="linenum"> 459</span></a>          <a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a> = self::<a class="function" onClick="logFunction('getUf')" href="../../../_functions/getuf.html" onMouseOver="funcPopup(event,'getuf')">getUf</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>);
<a name="l460"><span class="linenum"> 460</span></a>          <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> = self::<a class="function" onClick="logFunction('getInPath')" href="../../../_functions/getinpath.html" onMouseOver="funcPopup(event,'getinpath')">getInPath</a>(<a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>);
<a name="l461"><span class="linenum"> 461</span></a>          if (isset(<a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a>['m']) &amp;&amp; 'index' === <a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a>['m']) {
<a name="l462"><span class="linenum"> 462</span></a>              unset(<a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a>['m']);
<a name="l463"><span class="linenum"> 463</span></a>          }
<a name="l464"><span class="linenum"> 464</span></a>          if (isset(<a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a>['app'])) {
<a name="l465"><span class="linenum"> 465</span></a>              unset(<a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a>['app']);
<a name="l466"><span class="linenum"> 466</span></a>          }
<a name="l467"><span class="linenum"> 467</span></a>          if ('index' === <a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a>['c']) {
<a name="l468"><span class="linenum"> 468</span></a>              unset(<a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a>['c']);
<a name="l469"><span class="linenum"> 469</span></a>          }
<a name="l470"><span class="linenum"> 470</span></a>          if ('index' === <a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a>['a']) {
<a name="l471"><span class="linenum"> 471</span></a>              unset(<a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a>['a']);
<a name="l472"><span class="linenum"> 472</span></a>          }
<a name="l473"><span class="linenum"> 473</span></a>          if (<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>) {
<a name="l474"><span class="linenum"> 474</span></a>              empty(<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['params']) || <a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a> += <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['params'];
<a name="l475"><span class="linenum"> 475</span></a>              empty(<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['query']) || <a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a> += <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['query'];
<a name="l476"><span class="linenum"> 476</span></a>              if (!isset(<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['params']) &amp;&amp; !isset(<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['query'])) {
<a name="l477"><span class="linenum"> 477</span></a>                  <a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a> += <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>;
<a name="l478"><span class="linenum"> 478</span></a>              }
<a name="l479"><span class="linenum"> 479</span></a>          }
<a name="l480"><span class="linenum"> 480</span></a>          <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> &amp;&amp; <a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a>['ver'] = <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>;
<a name="l481"><span class="linenum"> 481</span></a>          <a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a> &amp;&amp; <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> .= '?' . <a class="phpfunction" onClick="logFunction('http_build_query')" href="../../../_functions/http_build_query.html" onMouseOver="phpfuncPopup(event,'http_build_query')">http_build_query</a>(<a class="var it159" onMouseOver="hilite(159)" onMouseOut="lolite()" onClick="logVariable('Q')" href="../../../_variables/Q.html">$Q</a>);
<a name="l482"><span class="linenum"> 482</span></a>          return <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a>;
<a name="l483"><span class="linenum"> 483</span></a>      }
<a name="l484"><span class="linenum"> 484</span></a>  
<a name="l485"><span class="linenum"> 485</span></a>      public static function <a class="function" onClick="logFunction('U1')" href="../../../_functions/u1.html" onMouseOver="funcPopup(event,'u1')">U1</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>, <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = '')
<a name="l486"><span class="linenum"> 486</span></a>      {
<a name="l487"><span class="linenum"> 487</span></a>          <a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a> = self::<a class="function" onClick="logFunction('getUf')" href="../../../_functions/getuf.html" onMouseOver="funcPopup(event,'getuf')">getUf</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>);
<a name="l488"><span class="linenum"> 488</span></a>          <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> = self::<a class="function" onClick="logFunction('getInPath')" href="../../../_functions/getinpath.html" onMouseOver="funcPopup(event,'getinpath')">getInPath</a>(<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>, !empty(<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['params']));
<a name="l489"><span class="linenum"> 489</span></a>          <a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a> = isset(<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['m']) ? &quot;/{<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['m']}&quot; : '';
<a name="l490"><span class="linenum"> 490</span></a>          if (empty(<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['params'])) {
<a name="l491"><span class="linenum"> 491</span></a>              if ('index' !== <a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['a']) {
<a name="l492"><span class="linenum"> 492</span></a>                  <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> .= &quot;{<a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>}/{<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['c']}/{<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['a']}&quot;;
<a name="l493"><span class="linenum"> 493</span></a>              } elseif ('index' !== <a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['c']) {
<a name="l494"><span class="linenum"> 494</span></a>                  <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> .= &quot;{<a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>}/{<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['c']}&quot;;
<a name="l495"><span class="linenum"> 495</span></a>              } elseif (<a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a> &amp;&amp; '/index' !== <a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>) {
<a name="l496"><span class="linenum"> 496</span></a>                  <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> .= <a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>;
<a name="l497"><span class="linenum"> 497</span></a>              }
<a name="l498"><span class="linenum"> 498</span></a>          } else {
<a name="l499"><span class="linenum"> 499</span></a>              <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> .= &quot;{<a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>}/{<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['c']}/{<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['a']}&quot;;
<a name="l500"><span class="linenum"> 500</span></a>              foreach (<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['params'] as <a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a> =&gt; <a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>) {
<a name="l501"><span class="linenum"> 501</span></a>                  <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> .= &quot;/{<a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a>}/{<a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>}&quot;;
<a name="l502"><span class="linenum"> 502</span></a>              }
<a name="l503"><span class="linenum"> 503</span></a>          }
<a name="l504"><span class="linenum"> 504</span></a>          <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> &amp;&amp; <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['query']['ver'] = <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>;
<a name="l505"><span class="linenum"> 505</span></a>          empty(<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['query']) || <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> .= '?' . <a class="phpfunction" onClick="logFunction('http_build_query')" href="../../../_functions/http_build_query.html" onMouseOver="phpfuncPopup(event,'http_build_query')">http_build_query</a>(<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['query']);
<a name="l506"><span class="linenum"> 506</span></a>          return <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a>;
<a name="l507"><span class="linenum"> 507</span></a>      }
<a name="l508"><span class="linenum"> 508</span></a>  
<a name="l509"><span class="linenum"> 509</span></a>      public static function <a class="function" onClick="logFunction('U2')" href="../../../_functions/u2.html" onMouseOver="funcPopup(event,'u2')">U2</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>, <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = '')
<a name="l510"><span class="linenum"> 510</span></a>      {
<a name="l511"><span class="linenum"> 511</span></a>          <a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a> = self::<a class="function" onClick="logFunction('getUf')" href="../../../_functions/getuf.html" onMouseOver="funcPopup(event,'getuf')">getUf</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>);
<a name="l512"><span class="linenum"> 512</span></a>          <a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a> = <a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['app'][1] ?? <a class="constant" onClick="logConstant('APP_NAME')" href="../../../_constants/APP_NAME.html" onMouseOver="constPopup(event,'APP_NAME')">APP_NAME</a>;
<a name="l513"><span class="linenum"> 513</span></a>          <a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a> = <a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['m'] ?? '';
<a name="l514"><span class="linenum"> 514</span></a>          <a class="var it72" onMouseOver="hilite(72)" onMouseOut="lolite()" onClick="logVariable('c')" href="../../../_variables/c.html">$c</a> = <a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['c'];
<a name="l515"><span class="linenum"> 515</span></a>          <a class="var it106" onMouseOver="hilite(106)" onMouseOut="lolite()" onClick="logVariable('a')" href="../../../_variables/a.html">$a</a> = <a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['a'];
<a name="l516"><span class="linenum"> 516</span></a>          if (!<a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a> = self::<a class="function" onClick="logFunction('format')" href="../../../_functions/format.html" onMouseOver="funcPopup(event,'format')">format</a>(<a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a>, <a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>)) {
<a name="l517"><span class="linenum"> 517</span></a>              throw new \Exception(&quot;没有配置路由，[app：{<a class="var it324" onMouseOver="hilite(324)" onMouseOut="lolite()" onClick="logVariable('app')" href="../../../_variables/app.html">$app</a>}，ver：{<a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>}]&quot;);
<a name="l518"><span class="linenum"> 518</span></a>          }
<a name="l519"><span class="linenum"> 519</span></a>          <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> = <a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a> ? (<a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>[0] ? &quot;{<a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>[0]}/{<a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>}&quot; : <a class="var it321" onMouseOver="hilite(321)" onMouseOut="lolite()" onClick="logVariable('m')" href="../../../_variables/m.html">$m</a>) : <a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>[0];
<a name="l520"><span class="linenum"> 520</span></a>          <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> = <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> ? <a class="constant" onClick="logConstant('U_HOME')" href="../../../_constants/U_HOME.html" onMouseOver="constPopup(event,'U_HOME')">U_HOME</a> . <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> : <a class="constant" onClick="logConstant('U_ROOT')" href="../../../_constants/U_ROOT.html" onMouseOver="constPopup(event,'U_ROOT')">U_ROOT</a>;
<a name="l521"><span class="linenum"> 521</span></a>          if (isset(<a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>[<a class="var it72" onMouseOver="hilite(72)" onMouseOut="lolite()" onClick="logVariable('c')" href="../../../_variables/c.html">$c</a>][<a class="var it106" onMouseOver="hilite(106)" onMouseOut="lolite()" onClick="logVariable('a')" href="../../../_variables/a.html">$a</a>])) {
<a name="l522"><span class="linenum"> 522</span></a>              <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> = <a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>[<a class="var it72" onMouseOver="hilite(72)" onMouseOut="lolite()" onClick="logVariable('c')" href="../../../_variables/c.html">$c</a>][<a class="var it106" onMouseOver="hilite(106)" onMouseOut="lolite()" onClick="logVariable('a')" href="../../../_variables/a.html">$a</a>];
<a name="l523"><span class="linenum"> 523</span></a>          } elseif (isset(<a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>[<a class="var it72" onMouseOver="hilite(72)" onMouseOut="lolite()" onClick="logVariable('c')" href="../../../_variables/c.html">$c</a>]['*'])) {
<a name="l524"><span class="linenum"> 524</span></a>              foreach (<a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>[<a class="var it72" onMouseOver="hilite(72)" onMouseOut="lolite()" onClick="logVariable('c')" href="../../../_variables/c.html">$c</a>]['*'] as <a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a> =&gt; <a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>) {
<a name="l525"><span class="linenum"> 525</span></a>                  if ('' !== <a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a> &amp;&amp; false !== <a class="phpfunction" onClick="logFunction('strpos')" href="../../../_functions/strpos.html" onMouseOver="phpfuncPopup(event,'strpos')">strpos</a>(<a class="var it106" onMouseOver="hilite(106)" onMouseOut="lolite()" onClick="logVariable('a')" href="../../../_variables/a.html">$a</a>, <a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a>)) {
<a name="l526"><span class="linenum"> 526</span></a>                      <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> = <a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>;
<a name="l527"><span class="linenum"> 527</span></a>                      <a class="var it106" onMouseOver="hilite(106)" onMouseOut="lolite()" onClick="logVariable('a')" href="../../../_variables/a.html">$a</a> = <a class="phpfunction" onClick="logFunction('str_replace')" href="../../../_functions/str_replace.html" onMouseOver="phpfuncPopup(event,'str_replace')">str_replace</a>(<a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a>, '', <a class="var it106" onMouseOver="hilite(106)" onMouseOut="lolite()" onClick="logVariable('a')" href="../../../_variables/a.html">$a</a>);
<a name="l528"><span class="linenum"> 528</span></a>                      break;
<a name="l529"><span class="linenum"> 529</span></a>                  }
<a name="l530"><span class="linenum"> 530</span></a>              }
<a name="l531"><span class="linenum"> 531</span></a>              <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> ?? <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> = <a class="var it73" onMouseOver="hilite(73)" onMouseOut="lolite()" onClick="logVariable('data')" href="../../../_variables/data.html">$data</a>[<a class="var it72" onMouseOver="hilite(72)" onMouseOut="lolite()" onClick="logVariable('c')" href="../../../_variables/c.html">$c</a>]['*'][''] ?? null;
<a name="l532"><span class="linenum"> 532</span></a>              <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> &amp;&amp; <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>[0] .= '/' . <a class="var it106" onMouseOver="hilite(106)" onMouseOut="lolite()" onClick="logVariable('a')" href="../../../_variables/a.html">$a</a>;
<a name="l533"><span class="linenum"> 533</span></a>          } else {
<a name="l534"><span class="linenum"> 534</span></a>              throw new \Exception(&quot;没有匹配到路由，[ctrl：{<a class="var it72" onMouseOver="hilite(72)" onMouseOut="lolite()" onClick="logVariable('c')" href="../../../_variables/c.html">$c</a>}，act：{<a class="var it106" onMouseOver="hilite(106)" onMouseOut="lolite()" onClick="logVariable('a')" href="../../../_variables/a.html">$a</a>}]&quot;);
<a name="l535"><span class="linenum"> 535</span></a>          }
<a name="l536"><span class="linenum"> 536</span></a>          if (isset(<a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>)) {
<a name="l537"><span class="linenum"> 537</span></a>              <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>[0] &amp;&amp; <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> .= <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>[0];
<a name="l538"><span class="linenum"> 538</span></a>              if (isset(<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['params']) &amp;&amp; <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>[1]) {
<a name="l539"><span class="linenum"> 539</span></a>                  <a class="var it37" onMouseOver="hilite(37)" onMouseOut="lolite()" onClick="logVariable('i')" href="../../../_variables/i.html">$i</a> = 0;
<a name="l540"><span class="linenum"> 540</span></a>                  foreach (<a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>[1] as <a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a> =&gt; <a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>) {
<a name="l541"><span class="linenum"> 541</span></a>                      if (<a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a> === <a class="var it37" onMouseOver="hilite(37)" onMouseOut="lolite()" onClick="logVariable('i')" href="../../../_variables/i.html">$i</a>) {
<a name="l542"><span class="linenum"> 542</span></a>                          ++<a class="var it37" onMouseOver="hilite(37)" onMouseOut="lolite()" onClick="logVariable('i')" href="../../../_variables/i.html">$i</a>;
<a name="l543"><span class="linenum"> 543</span></a>                          <a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a> = <a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>;
<a name="l544"><span class="linenum"> 544</span></a>                      } else {
<a name="l545"><span class="linenum"> 545</span></a>                          <a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a> = <a class="var it95" onMouseOver="hilite(95)" onMouseOut="lolite()" onClick="logVariable('k')" href="../../../_variables/k.html">$k</a>;
<a name="l546"><span class="linenum"> 546</span></a>                      }
<a name="l547"><span class="linenum"> 547</span></a>                      if (isset(<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['params'][<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>])) {
<a name="l548"><span class="linenum"> 548</span></a>                          <a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a>[] = <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['params'][<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>];
<a name="l549"><span class="linenum"> 549</span></a>                          unset(<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['params'][<a class="var it26" onMouseOver="hilite(26)" onMouseOut="lolite()" onClick="logVariable('key')" href="../../../_variables/key.html">$key</a>]);
<a name="l550"><span class="linenum"> 550</span></a>                      }
<a name="l551"><span class="linenum"> 551</span></a>                  }
<a name="l552"><span class="linenum"> 552</span></a>              }
<a name="l553"><span class="linenum"> 553</span></a>          }
<a name="l554"><span class="linenum"> 554</span></a>          <a class="var it230" onMouseOver="hilite(230)" onMouseOut="lolite()" onClick="logVariable('query')" href="../../../_variables/query.html">$query</a> = <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['params'] ?? [];
<a name="l555"><span class="linenum"> 555</span></a>          empty(<a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['query']) || <a class="var it230" onMouseOver="hilite(230)" onMouseOut="lolite()" onClick="logVariable('query')" href="../../../_variables/query.html">$query</a> += <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>['query'];
<a name="l556"><span class="linenum"> 556</span></a>          isset(<a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a>) &amp;&amp; <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> .= '/' . <a class="phpfunction" onClick="logFunction('implode')" href="../../../_functions/implode.html" onMouseOver="phpfuncPopup(event,'implode')">implode</a>('/', <a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a>);
<a name="l557"><span class="linenum"> 557</span></a>          <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> &amp;&amp; <a class="var it230" onMouseOver="hilite(230)" onMouseOut="lolite()" onClick="logVariable('query')" href="../../../_variables/query.html">$query</a>['ver'] = <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>;
<a name="l558"><span class="linenum"> 558</span></a>          <a class="var it230" onMouseOver="hilite(230)" onMouseOut="lolite()" onClick="logVariable('query')" href="../../../_variables/query.html">$query</a> &amp;&amp; <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> .= '?' . <a class="phpfunction" onClick="logFunction('http_build_query')" href="../../../_functions/http_build_query.html" onMouseOver="phpfuncPopup(event,'http_build_query')">http_build_query</a>(<a class="var it230" onMouseOver="hilite(230)" onMouseOut="lolite()" onClick="logVariable('query')" href="../../../_variables/query.html">$query</a>);
<a name="l559"><span class="linenum"> 559</span></a>          return <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a>;
<a name="l560"><span class="linenum"> 560</span></a>      }
<a name="l561"><span class="linenum"> 561</span></a>  
<a name="l562"><span class="linenum"> 562</span></a>      public static function <a class="function" onClick="logFunction('Url')" href="../../../_functions/url.html" onMouseOver="funcPopup(event,'url')">Url</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>, array <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a> = [], string <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a> = '', <a class="var it83" onMouseOver="hilite(83)" onMouseOut="lolite()" onClick="logVariable('mod')" href="../../../_variables/mod.html">$mod</a> = null)
<a name="l563"><span class="linenum"> 563</span></a>      {
<a name="l564"><span class="linenum"> 564</span></a>          isset(<a class="var it83" onMouseOver="hilite(83)" onMouseOut="lolite()" onClick="logVariable('mod')" href="../../../_variables/mod.html">$mod</a>) || <a class="var it83" onMouseOver="hilite(83)" onMouseOut="lolite()" onClick="logVariable('mod')" href="../../../_variables/mod.html">$mod</a> = <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['ROUTER']['mod'] ?? self::<a class="var it312" onMouseOver="hilite(312)" onMouseOut="lolite()" onClick="logVariable('MOD')" href="../../../_variables/MOD.html">$MOD</a>;
<a name="l565"><span class="linenum"> 565</span></a>          if (<a class="phpfunction" onClick="logFunction('is_array')" href="../../../_functions/is_array.html" onMouseOver="phpfuncPopup(event,'is_array')">is_array</a>(<a class="var it83" onMouseOver="hilite(83)" onMouseOut="lolite()" onClick="logVariable('mod')" href="../../../_variables/mod.html">$mod</a>)) {
<a name="l566"><span class="linenum"> 566</span></a>              return self::<a class="function" onClick="logFunction('U1')" href="../../../_functions/u1.html" onMouseOver="funcPopup(event,'u1')">U1</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>, <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>, <a class="var it83" onMouseOver="hilite(83)" onMouseOut="lolite()" onClick="logVariable('mod')" href="../../../_variables/mod.html">$mod</a>);
<a name="l567"><span class="linenum"> 567</span></a>          }
<a name="l568"><span class="linenum"> 568</span></a>          switch (<a class="var it83" onMouseOver="hilite(83)" onMouseOut="lolite()" onClick="logVariable('mod')" href="../../../_variables/mod.html">$mod</a>) {
<a name="l569"><span class="linenum"> 569</span></a>              case 0:
<a name="l570"><span class="linenum"> 570</span></a>                  <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> = self::<a class="function" onClick="logFunction('U0')" href="../../../_functions/u0.html" onMouseOver="funcPopup(event,'u0')">U0</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>, <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>);
<a name="l571"><span class="linenum"> 571</span></a>                  break;
<a name="l572"><span class="linenum"> 572</span></a>              case 1:
<a name="l573"><span class="linenum"> 573</span></a>                  <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> = self::<a class="function" onClick="logFunction('U1')" href="../../../_functions/u1.html" onMouseOver="funcPopup(event,'u1')">U1</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>, <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>);
<a name="l574"><span class="linenum"> 574</span></a>                  break;
<a name="l575"><span class="linenum"> 575</span></a>              case 2:
<a name="l576"><span class="linenum"> 576</span></a>                  <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a> = self::<a class="function" onClick="logFunction('U2')" href="../../../_functions/u2.html" onMouseOver="funcPopup(event,'u2')">U2</a>(<a class="var it103" onMouseOver="hilite(103)" onMouseOut="lolite()" onClick="logVariable('path')" href="../../../_variables/path.html">$path</a>, <a class="var it295" onMouseOver="hilite(295)" onMouseOut="lolite()" onClick="logVariable('args')" href="../../../_variables/args.html">$args</a>, <a class="var it271" onMouseOver="hilite(271)" onMouseOut="lolite()" onClick="logVariable('ver')" href="../../../_variables/ver.html">$ver</a>);
<a name="l577"><span class="linenum"> 577</span></a>                  break;
<a name="l578"><span class="linenum"> 578</span></a>              default:
<a name="l579"><span class="linenum"> 579</span></a>                  throw new \Exception('url参数4错误');
<a name="l580"><span class="linenum"> 580</span></a>          }
<a name="l581"><span class="linenum"> 581</span></a>          return <a class="var it330" onMouseOver="hilite(330)" onMouseOut="lolite()" onClick="logVariable('url')" href="../../../_variables/url.html">$url</a>;
<a name="l582"><span class="linenum"> 582</span></a>      }
<a name="l583"><span class="linenum"> 583</span></a>      private static function <a class="function" onClick="logFunction('defaultRoute')" href="../../../_functions/defaultroute.html" onMouseOver="funcPopup(event,'defaultroute')">defaultRoute</a>()
<a name="l584"><span class="linenum"> 584</span></a>      {
<a name="l585"><span class="linenum"> 585</span></a>          self::<a class="var it311" onMouseOver="hilite(311)" onMouseOut="lolite()" onClick="logVariable('IS_MODULE')" href="../../../_variables/IS_MODULE.html">$IS_MODULE</a> &amp;&amp; <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['module'] = <a class="var it126" onMouseOver="hilite(126)" onMouseOut="lolite()" onClick="logVariable('_GET')" href="../../../_variables/_GET.html">$_GET</a>['m'] ?: 'index';
<a name="l586"><span class="linenum"> 586</span></a>          if (isset(<a class="var it126" onMouseOver="hilite(126)" onMouseOut="lolite()" onClick="logVariable('_GET')" href="../../../_variables/_GET.html">$_GET</a>['c'])) {
<a name="l587"><span class="linenum"> 587</span></a>              <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['ctrl'] = <a class="var it126" onMouseOver="hilite(126)" onMouseOut="lolite()" onClick="logVariable('_GET')" href="../../../_variables/_GET.html">$_GET</a>['c'] ?: 'index';
<a name="l588"><span class="linenum"> 588</span></a>              unset(<a class="var it126" onMouseOver="hilite(126)" onMouseOut="lolite()" onClick="logVariable('_GET')" href="../../../_variables/_GET.html">$_GET</a>['c']);
<a name="l589"><span class="linenum"> 589</span></a>          } else {
<a name="l590"><span class="linenum"> 590</span></a>              <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['ctrl'] = 'index';
<a name="l591"><span class="linenum"> 591</span></a>          }
<a name="l592"><span class="linenum"> 592</span></a>          if (!empty(<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['ROUTER']['restfull'])) {
<a name="l593"><span class="linenum"> 593</span></a>              <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a> = <a class="phpfunction" onClick="logFunction('strtolower')" href="../../../_functions/strtolower.html" onMouseOver="phpfuncPopup(event,'strtolower')">strtolower</a>(<a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>['REQUEST_METHOD']);
<a name="l594"><span class="linenum"> 594</span></a>              <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['act'] = <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['ROUTER']['restfull'][<a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a>] ?? <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a>;
<a name="l595"><span class="linenum"> 595</span></a>          } elseif (isset(<a class="var it126" onMouseOver="hilite(126)" onMouseOut="lolite()" onClick="logVariable('_GET')" href="../../../_variables/_GET.html">$_GET</a>['a'])) {
<a name="l596"><span class="linenum"> 596</span></a>              <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['act'] = <a class="var it126" onMouseOver="hilite(126)" onMouseOut="lolite()" onClick="logVariable('_GET')" href="../../../_variables/_GET.html">$_GET</a>['a'] ?: 'index';
<a name="l597"><span class="linenum"> 597</span></a>              unset(<a class="var it126" onMouseOver="hilite(126)" onMouseOut="lolite()" onClick="logVariable('_GET')" href="../../../_variables/_GET.html">$_GET</a>['a']);
<a name="l598"><span class="linenum"> 598</span></a>          } else {
<a name="l599"><span class="linenum"> 599</span></a>              <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['act'] = 'index';
<a name="l600"><span class="linenum"> 600</span></a>          }
<a name="l601"><span class="linenum"> 601</span></a>          return <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>;
<a name="l602"><span class="linenum"> 602</span></a>      }
<a name="l603"><span class="linenum"> 603</span></a>      private static function <a class="function" onClick="logFunction('pathinfo2arr')" href="../../../_functions/pathinfo2arr.html" onMouseOver="funcPopup(event,'pathinfo2arr')">pathinfo2arr</a>(string <a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a>)
<a name="l604"><span class="linenum"> 604</span></a>      {
<a name="l605"><span class="linenum"> 605</span></a>          <a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a> = <a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a> ? <a class="phpfunction" onClick="logFunction('explode')" href="../../../_functions/explode.html" onMouseOver="phpfuncPopup(event,'explode')">explode</a>('/', <a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a>) : ['index'];
<a name="l606"><span class="linenum"> 606</span></a>          self::<a class="var it311" onMouseOver="hilite(311)" onMouseOut="lolite()" onClick="logVariable('IS_MODULE')" href="../../../_variables/IS_MODULE.html">$IS_MODULE</a> &amp;&amp; <a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['module'] = <a class="phpfunction" onClick="logFunction('array_shift')" href="../../../_functions/array_shift.html" onMouseOver="phpfuncPopup(event,'array_shift')">array_shift</a>(<a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a>);
<a name="l607"><span class="linenum"> 607</span></a>          <a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['ctrl'] = <a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a> ? <a class="phpfunction" onClick="logFunction('array_shift')" href="../../../_functions/array_shift.html" onMouseOver="phpfuncPopup(event,'array_shift')">array_shift</a>(<a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a>) : 'index';
<a name="l608"><span class="linenum"> 608</span></a>          if (!empty(<a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['ROUTER']['restfull']) &amp;&amp; <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a> = <a class="phpfunction" onClick="logFunction('strtolower')" href="../../../_functions/strtolower.html" onMouseOver="phpfuncPopup(event,'strtolower')">strtolower</a>(<a class="var it263" onMouseOver="hilite(263)" onMouseOut="lolite()" onClick="logVariable('_SERVER')" href="../../../_variables/_SERVER.html">$_SERVER</a>['REQUEST_METHOD'])) {
<a name="l609"><span class="linenum"> 609</span></a>              <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a> = <a class="var it194" onMouseOver="hilite(194)" onMouseOut="lolite()" onClick="logVariable('GLOBALS')" href="../../../_variables/GLOBALS.html">$GLOBALS</a>['ZPHP_CONFIG']['ROUTER']['restfull'][<a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a>] ?? <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a>;
<a name="l610"><span class="linenum"> 610</span></a>          }
<a name="l611"><span class="linenum"> 611</span></a>          return [<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>, <a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a>, <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a> ?? false];
<a name="l612"><span class="linenum"> 612</span></a>      }
<a name="l613"><span class="linenum"> 613</span></a>      private static function <a class="function" onClick="logFunction('pathinfoRoute')" href="../../../_functions/pathinforoute.html" onMouseOver="funcPopup(event,'pathinforoute')">pathinfoRoute</a>(<a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a>)
<a name="l614"><span class="linenum"> 614</span></a>      {
<a name="l615"><span class="linenum"> 615</span></a>          list(<a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>, <a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a>, <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a>) = self::<a class="function" onClick="logFunction('pathinfo2arr')" href="../../../_functions/pathinfo2arr.html" onMouseOver="funcPopup(event,'pathinfo2arr')">pathinfo2arr</a>(<a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a>);
<a name="l616"><span class="linenum"> 616</span></a>          <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['act'] = <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a> ?: (<a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a> ? <a class="phpfunction" onClick="logFunction('array_shift')" href="../../../_functions/array_shift.html" onMouseOver="phpfuncPopup(event,'array_shift')">array_shift</a>(<a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a>) : 'index');
<a name="l617"><span class="linenum"> 617</span></a>          <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['path'] = <a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a>;
<a name="l618"><span class="linenum"> 618</span></a>          <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['params'] = [];
<a name="l619"><span class="linenum"> 619</span></a>          if (<a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a> &amp;&amp; <a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a> = <a class="phpfunction" onClick="logFunction('array_chunk')" href="../../../_functions/array_chunk.html" onMouseOver="phpfuncPopup(event,'array_chunk')">array_chunk</a>(<a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a>, 2)) {
<a name="l620"><span class="linenum"> 620</span></a>              foreach (<a class="var it105" onMouseOver="hilite(105)" onMouseOut="lolite()" onClick="logVariable('params')" href="../../../_variables/params.html">$params</a> as <a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>) {
<a name="l621"><span class="linenum"> 621</span></a>                  <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>['params'][<a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>[0]] = <a class="var it79" onMouseOver="hilite(79)" onMouseOut="lolite()" onClick="logVariable('v')" href="../../../_variables/v.html">$v</a>[1] ?? '';
<a name="l622"><span class="linenum"> 622</span></a>              }
<a name="l623"><span class="linenum"> 623</span></a>          }
<a name="l624"><span class="linenum"> 624</span></a>          return <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a>;
<a name="l625"><span class="linenum"> 625</span></a>      }
<a name="l626"><span class="linenum"> 626</span></a>      private static function <a class="function" onClick="logFunction('route')" href="../../../_functions/route.html" onMouseOver="funcPopup(event,'route')">route</a>(string <a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a>, array <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>)
<a name="l627"><span class="linenum"> 627</span></a>      {
<a name="l628"><span class="linenum"> 628</span></a>          list(<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>, <a class="var it191" onMouseOver="hilite(191)" onMouseOut="lolite()" onClick="logVariable('arr')" href="../../../_variables/arr.html">$arr</a>, <a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a>) = self::<a class="function" onClick="logFunction('pathinfo2arr')" href="../../../_functions/pathinfo2arr.html" onMouseOver="funcPopup(event,'pathinfo2arr')">pathinfo2arr</a>(<a class="var it250" onMouseOver="hilite(250)" onMouseOut="lolite()" onClick="logVariable('pathinfo')" href="../../../_variables/pathinfo.html">$pathinfo</a>);
<a name="l629"><span class="linenum"> 629</span></a>          if (isset(<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['module']) &amp;&amp; !<a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a> = self::<a class="function" onClick="logFunction('getModuleRouter')" href="../../../_functions/getmodulerouter.html" onMouseOver="funcPopup(event,'getmodulerouter')">getModuleRouter</a>(<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['module'])) {
<a name="l630"><span class="linenum"> 630</span></a>              throw new \Exception(&quot;没有{<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['module']}模块的路由&quot;);
<a name="l631"><span class="linenum"> 631</span></a>          }
<a name="l632"><span class="linenum"> 632</span></a>          if (<a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a> &amp;&amp; isset(<a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>[&quot;/{<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['ctrl']}/{<a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a>}&quot;])) {
<a name="l633"><span class="linenum"> 633</span></a>              <a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> = <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>[&quot;/{<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['ctrl']}/{<a class="var it23" onMouseOver="hilite(23)" onMouseOut="lolite()" onClick="logVariable('act')" href="../../../_variables/act.html">$act</a>}&quot;];
<a name="l634"><span class="linenum"> 634</span></a>          } elseif (!<a class="var it318" onMouseOver="hilite(318)" onMouseOut="lolite()" onClick="logVariable('route')" href="../../../_variables/route.html">$route</a> = <a class="var it319" onMouseOver="hilite(319)" onMouseOut="lolite()" onClick="logVariable('router')" href="../../../_variables/router.html">$router</a>[&quot;/{<a class="var it189" onMouseOver="hilite(189)" onMouseOut="lolite()" onClick="logVariable('info')" href="../../../_variables/info.html">$info</a>['ctrl']}<span class="comment">/*&quot;] ?? $router[&quot;/{$info['ctrl']}&quot;] ?? false) {</span>
<a name="l635"><span class="linenum"> 635</span></a>  <span class="comment">            if (!$route = 'index' === $info['ctrl'] &amp;&amp; !$arr ? $router['/'] ?? false : $router['*'] ?? false) {</span>
<a name="l636"><span class="linenum"> 636</span></a>  <span class="comment">                throw new \Exception('没有匹配到路由, 不想看到此错误请配置 * 路由');</span>
<a name="l637"><span class="linenum"> 637</span></a>  <span class="comment">            }</span>
<a name="l638"><span class="linenum"> 638</span></a>  <span class="comment">        }</span>
<a name="l639"><span class="linenum"> 639</span></a>  <span class="comment">        if (empty($route['ctrl']) || empty($route['act'])) {</span>
<a name="l640"><span class="linenum"> 640</span></a>  <span class="comment">            throw new \Exception('必须设置路由的 ctrl 和 act');</span>
<a name="l641"><span class="linenum"> 641</span></a>  <span class="comment">        }</span>
<a name="l642"><span class="linenum"> 642</span></a>  <span class="comment">        if (false !== strpos($route['act'], '*') &amp;&amp; $replace = array_shift($arr) ?: 'index') {</span>
<a name="l643"><span class="linenum"> 643</span></a>  <span class="comment">            $route['act'] = str_replace('*', $replace, $route['act']);</span>
<a name="l644"><span class="linenum"> 644</span></a>  <span class="comment">        }</span>
<a name="l645"><span class="linenum"> 645</span></a>  <span class="comment">        isset($route['module']) || isset($info['module']) &amp;&amp; $route['module'] = $info['module'];</span>
<a name="l646"><span class="linenum"> 646</span></a>  <span class="comment">        if (isset($route['params'])) {</span>
<a name="l647"><span class="linenum"> 647</span></a>  <span class="comment">            $ii = 0;</span>
<a name="l648"><span class="linenum"> 648</span></a>  <span class="comment">            $n = 0;</span>
<a name="l649"><span class="linenum"> 649</span></a>  <span class="comment">            $ii = 0;</span>
<a name="l650"><span class="linenum"> 650</span></a>  <span class="comment">            foreach ($route['params'] as $k =&gt; $v) {</span>
<a name="l651"><span class="linenum"> 651</span></a>  <span class="comment">                if ($ii === $k) {</span>
<a name="l652"><span class="linenum"> 652</span></a>  <span class="comment">                    $key = $v;</span>
<a name="l653"><span class="linenum"> 653</span></a>  <span class="comment">                    $value = null;</span>
<a name="l654"><span class="linenum"> 654</span></a>  <span class="comment">                } else {</span>
<a name="l655"><span class="linenum"> 655</span></a>  <span class="comment">                    $key = $k;</span>
<a name="l656"><span class="linenum"> 656</span></a>  <span class="comment">                    $value = $v;</span>
<a name="l657"><span class="linenum"> 657</span></a>  <span class="comment">                }</span>
<a name="l658"><span class="linenum"> 658</span></a>  <span class="comment">                $params[$key] = $arr[$n] ?? $value;</span>
<a name="l659"><span class="linenum"> 659</span></a>  <span class="comment">                ++$n &amp;&amp; is_int($k) &amp;&amp; ++$ii;</span>
<a name="l660"><span class="linenum"> 660</span></a>  <span class="comment">            }</span>
<a name="l661"><span class="linenum"> 661</span></a>  <span class="comment">        }</span>
<a name="l662"><span class="linenum"> 662</span></a>  <span class="comment">        $route['params'] = $params ?? [];</span>
<a name="l663"><span class="linenum"> 663</span></a>  <span class="comment">        $route['path'] = $arr;</span>
<a name="l664"><span class="linenum"> 664</span></a>  <span class="comment">        return $route;</span>
<a name="l665"><span class="linenum"> 665</span></a>  <span class="comment">    }</span>
<a name="l666"><span class="linenum"> 666</span></a>  <span class="comment">}</span>
<a name="l667"><span class="linenum"> 667</span></a>  <span class="comment"></span>
<a name="l668"><span class="linenum"> 668</span></a>  <span class="comment">class ctrl</span>
<a name="l669"><span class="linenum"> 669</span></a>  <span class="comment">{</span>
<a name="l670"><span class="linenum"> 670</span></a>  <span class="comment">    public static function _404()</span>
<a name="l671"><span class="linenum"> 671</span></a>  <span class="comment">    {</span>
<a name="l672"><span class="linenum"> 672</span></a>  <span class="comment">        $args = func_get_args();</span>
<a name="l673"><span class="linenum"> 673</span></a>  <span class="comment">        $errMsg = $args[0] ?? '404，您请求的文件不存在！';</span>
<a name="l674"><span class="linenum"> 674</span></a>  <span class="comment">        if (isset($args[1])) {</span>
<a name="l675"><span class="linenum"> 675</span></a>  <span class="comment">            $tpl = view::GetTpl($args[1], true);</span>
<a name="l676"><span class="linenum"> 676</span></a>  <span class="comment">            is_file($tpl) || $tpl = P_ROOT . $args[1];</span>
<a name="l677"><span class="linenum"> 677</span></a>  <span class="comment">        } else {</span>
<a name="l678"><span class="linenum"> 678</span></a>  <span class="comment">            $tpl = P_THEME_ . '404.html';</span>
<a name="l679"><span class="linenum"> 679</span></a>  <span class="comment">            is_file($tpl) || is_file($tpl = P_ROOT . '404.html') || $tpl = P_CORE . 'tpl/404.tpl';</span>
<a name="l680"><span class="linenum"> 680</span></a>  <span class="comment">        }</span>
<a name="l681"><span class="linenum"> 681</span></a>  <span class="comment">        ob_end_clean();</span>
<a name="l682"><span class="linenum"> 682</span></a>  <span class="comment">        require $tpl;</span>
<a name="l683"><span class="linenum"> 683</span></a>  <span class="comment">        die;</span>
<a name="l684"><span class="linenum"> 684</span></a>  <span class="comment">    }</span>
<a name="l685"><span class="linenum"> 685</span></a>  <span class="comment"></span>
<a name="l686"><span class="linenum"> 686</span></a>  <span class="comment">    public static function _500()</span>
<a name="l687"><span class="linenum"> 687</span></a>  <span class="comment">    {</span>
<a name="l688"><span class="linenum"> 688</span></a>  <span class="comment">        $args = func_get_args();</span>
<a name="l689"><span class="linenum"> 689</span></a>  <span class="comment">        $errMsg = $args[0] ?? '500，出错啦！';</span>
<a name="l690"><span class="linenum"> 690</span></a>  <span class="comment">        if (isset($args[1])) {</span>
<a name="l691"><span class="linenum"> 691</span></a>  <span class="comment">            $tpl = view::GetTpl($args[1], true);</span>
<a name="l692"><span class="linenum"> 692</span></a>  <span class="comment">        } else {</span>
<a name="l693"><span class="linenum"> 693</span></a>  <span class="comment">            $tpl = P_THEME_ . '500.html';</span>
<a name="l694"><span class="linenum"> 694</span></a>  <span class="comment">            is_file($tpl) || is_file($tpl = P_ROOT . '500.html') || $tpl = P_CORE . 'tpl/500.tpl';</span>
<a name="l695"><span class="linenum"> 695</span></a>  <span class="comment">        }</span>
<a name="l696"><span class="linenum"> 696</span></a>  <span class="comment">        ob_end_clean();</span>
<a name="l697"><span class="linenum"> 697</span></a>  <span class="comment">        require $tpl;</span>
<a name="l698"><span class="linenum"> 698</span></a>  <span class="comment">        die;</span>
<a name="l699"><span class="linenum"> 699</span></a>  <span class="comment">    }</span>
<a name="l700"><span class="linenum"> 700</span></a>  <span class="comment"></span>
<a name="l701"><span class="linenum"> 701</span></a>  <span class="comment">    public static function json($data)</span>
<a name="l702"><span class="linenum"> 702</span></a>  <span class="comment">    {</span>
<a name="l703"><span class="linenum"> 703</span></a>  <span class="comment">        ob_end_clean();</span>
<a name="l704"><span class="linenum"> 704</span></a>  <span class="comment">        header('Content-Type:application/json; charset=utf-8');</span>
<a name="l705"><span class="linenum"> 705</span></a>  <span class="comment">        die(json_encode($data, 320));</span>
<a name="l706"><span class="linenum"> 706</span></a>  <span class="comment">    }</span>
<a name="l707"><span class="linenum"> 707</span></a>  <span class="comment">}</span>
<a name="l708"><span class="linenum"> 708</span></a>  <span class="comment">class debug</span>
<a name="l709"><span class="linenum"> 709</span></a>  <span class="comment">{</span>
<a name="l710"><span class="linenum"> 710</span></a>  <span class="comment">    const ERRTYPE = [2 =&gt; '运行警告', 8 =&gt; '运行提醒', 256 =&gt; '错误', 512 =&gt; '警告', 1024 =&gt; '提醒', 2048 =&gt; '编码标准化警告', 1120 =&gt; 'SQL查询', 1130 =&gt; '环境', 1131 =&gt; '常量', 1132 =&gt; '配置', 1133 =&gt; '命名空间', 1140 =&gt; '模板文件', 1150 =&gt; '模板变量', 1160 =&gt; 'POST', 8192 =&gt; '运行通知'];</span>
<a name="l711"><span class="linenum"> 711</span></a>  <span class="comment">    private static $pdotime = 0;</span>
<a name="l712"><span class="linenum"> 712</span></a>  <span class="comment">    private static $errs = [];</span>
<a name="l713"><span class="linenum"> 713</span></a>  <span class="comment">    public static function pdotime($time)</span>
<a name="l714"><span class="linenum"> 714</span></a>  <span class="comment">    {</span>
<a name="l715"><span class="linenum"> 715</span></a>  <span class="comment">        self::$pdotime += $time;</span>
<a name="l716"><span class="linenum"> 716</span></a>  <span class="comment">    }</span>
<a name="l717"><span class="linenum"> 717</span></a>  <span class="comment">    public static function exceptionHandler($e)</span>
<a name="l718"><span class="linenum"> 718</span></a>  <span class="comment">    {</span>
<a name="l719"><span class="linenum"> 719</span></a>  <span class="comment">        $level = $GLOBALS['ZPHP_CONFIG']['DEBUG']['level'] ?? 3;</span>
<a name="l720"><span class="linenum"> 720</span></a>  <span class="comment">        $log = $GLOBALS['ZPHP_CONFIG']['DEBUG']['log'] ?? 0;</span>
<a name="l721"><span class="linenum"> 721</span></a>  <span class="comment">        !$log &amp;&amp; 2 &gt; $level &amp;&amp; z::_500();</span>
<a name="l722"><span class="linenum"> 722</span></a>  <span class="comment">        $line = $e-&gt;getLine();</span>
<a name="l723"><span class="linenum"> 723</span></a>  <span class="comment">        $file = $e-&gt;getFile();</span>
<a name="l724"><span class="linenum"> 724</span></a>  <span class="comment">        $msg = $e-&gt;getMessage() . &quot; at [{$file} : {$line}]&quot;;</span>
<a name="l725"><span class="linenum"> 725</span></a>  <span class="comment">        $trace = $e-&gt;getTraceAsString();</span>
<a name="l726"><span class="linenum"> 726</span></a>  <span class="comment">        $trace = str_replace('\\\\', '\\', $trace);</span>
<a name="l727"><span class="linenum"> 727</span></a>  <span class="comment">        foreach ($e-&gt;getTrace() as $k =&gt; $v) {</span>
<a name="l728"><span class="linenum"> 728</span></a>  <span class="comment">            $v['args'] &amp;&amp; $args[&quot;#{$k}&quot;] = 1 === count($v['args']) ? $v['args'][0] : $v['args'];</span>
<a name="l729"><span class="linenum"> 729</span></a>  <span class="comment">        }</span>
<a name="l730"><span class="linenum"> 730</span></a>  <span class="comment">        $args_str = isset($args) ? P($args, false) : '';</span>
<a name="l731"><span class="linenum"> 731</span></a>  <span class="comment">        if ($log) {</span>
<a name="l732"><span class="linenum"> 732</span></a>  <span class="comment">            $str = $msg . PHP_EOL . $trace . PHP_EOL;</span>
<a name="l733"><span class="linenum"> 733</span></a>  <span class="comment">            $args_str &amp;&amp; $str .= 'args: ' . str_replace(&quot;\n&quot;, PHP_EOL, $args_str);</span>
<a name="l734"><span class="linenum"> 734</span></a>  <span class="comment">            self::log($str, 'error');</span>
<a name="l735"><span class="linenum"> 735</span></a>  <span class="comment">        }</span>
<a name="l736"><span class="linenum"> 736</span></a>  <span class="comment">        if ($level &gt; 1) {</span>
<a name="l737"><span class="linenum"> 737</span></a>  <span class="comment">            header('status: 500');</span>
<a name="l738"><span class="linenum"> 738</span></a>  <span class="comment">            $type = $GLOBALS['ZPHP_CONFIG']['DEBUG']['type'] ?? 'html';</span>
<a name="l739"><span class="linenum"> 739</span></a>  <span class="comment">            if ('json' === $type) {</span>
<a name="l740"><span class="linenum"> 740</span></a>  <span class="comment">                $err = ['errMsg' =&gt; $msg, 'trace' =&gt; $trace];</span>
<a name="l741"><span class="linenum"> 741</span></a>  <span class="comment">                isset($args) &amp;&amp; $err['args'] = $args;</span>
<a name="l742"><span class="linenum"> 742</span></a>  <span class="comment">                ctrl::json($err);</span>
<a name="l743"><span class="linenum"> 743</span></a>  <span class="comment">            } else {</span>
<a name="l744"><span class="linenum"> 744</span></a>  <span class="comment">                echo &quot;&lt;style&gt;body{margin:0;padding:0;}&lt;/style&gt;&lt;div style='background:#FFBBDD;padding:1rem;'&gt;&lt;h2&gt;ERROR!&lt;/h2&gt;&lt;h3&gt;{$msg}&lt;/h3&gt;&quot;;</span>
<a name="l745"><span class="linenum"> 745</span></a>  <span class="comment">                echo '&lt;strong&gt;&lt;pre&gt;' . $trace . '&lt;/pre&gt;&lt;/strong&gt;';</span>
<a name="l746"><span class="linenum"> 746</span></a>  <span class="comment">                if (isset($args)) {</span>
<a name="l747"><span class="linenum"> 747</span></a>  <span class="comment">                    echo '&lt;h3&gt;参数：&lt;/h3&gt;';</span>
<a name="l748"><span class="linenum"> 748</span></a>  <span class="comment">                    P($args);</span>
<a name="l749"><span class="linenum"> 749</span></a>  <span class="comment">                }</span>
<a name="l750"><span class="linenum"> 750</span></a>  <span class="comment">                die('&lt;/div&gt;');</span>
<a name="l751"><span class="linenum"> 751</span></a>  <span class="comment">            }</span>
<a name="l752"><span class="linenum"> 752</span></a>  <span class="comment">        }</span>
<a name="l753"><span class="linenum"> 753</span></a>  <span class="comment">    }</span>
<a name="l754"><span class="linenum"> 754</span></a>  <span class="comment">    private static function log($str, $type)</span>
<a name="l755"><span class="linenum"> 755</span></a>  <span class="comment">    {</span>
<a name="l756"><span class="linenum"> 756</span></a>  <span class="comment">        $dir = P_TMP . &quot;/{$type}_log/&quot; . APP_NAME;</span>
<a name="l757"><span class="linenum"> 757</span></a>  <span class="comment">        !file_exists($dir) &amp;&amp; !mkdir($dir, 0755, true);</span>
<a name="l758"><span class="linenum"> 758</span></a>  <span class="comment">        $file = $dir . '/' . date('Y-m-d') . '.log';</span>
<a name="l759"><span class="linenum"> 759</span></a>  <span class="comment">        $str = '[' . date('H:i:s') . &quot;] {$str}&quot;;</span>
<a name="l760"><span class="linenum"> 760</span></a>  <span class="comment">        file_put_contents($file, $str . PHP_EOL, FILE_APPEND);</span>
<a name="l761"><span class="linenum"> 761</span></a>  <span class="comment">    }</span>
<a name="l762"><span class="linenum"> 762</span></a>  <span class="comment">    public static function setMsg($errno, $str)</span>
<a name="l763"><span class="linenum"> 763</span></a>  <span class="comment">    {</span>
<a name="l764"><span class="linenum"> 764</span></a>  <span class="comment">        self::$errs[$errno][] = $str;</span>
<a name="l765"><span class="linenum"> 765</span></a>  <span class="comment">    }</span>
<a name="l766"><span class="linenum"> 766</span></a>  <span class="comment">    public static function errorHandler($errno, $errstr, $errfile, $errline)</span>
<a name="l767"><span class="linenum"> 767</span></a>  <span class="comment">    {</span>
<a name="l768"><span class="linenum"> 768</span></a>  <span class="comment">        $level = $GLOBALS['ZPHP_CONFIG']['DEBUG']['level'] ?? 3;</span>
<a name="l769"><span class="linenum"> 769</span></a>  <span class="comment">        $log = $GLOBALS['ZPHP_CONFIG']['DEBUG']['log'] ?? 0;</span>
<a name="l770"><span class="linenum"> 770</span></a>  <span class="comment">        if ($level &lt; 3 &amp;&amp; $log &lt; 2) {</span>
<a name="l771"><span class="linenum"> 771</span></a>  <span class="comment">            return;</span>
<a name="l772"><span class="linenum"> 772</span></a>  <span class="comment">        }</span>
<a name="l773"><span class="linenum"> 773</span></a>  <span class="comment"></span>
<a name="l774"><span class="linenum"> 774</span></a>  <span class="comment">        $errstr = TransCode($errstr);</span>
<a name="l775"><span class="linenum"> 775</span></a>  <span class="comment">        $errfile = '[' . str_replace('\\', '/', $errfile) . &quot; ] : {$errline}&quot;;</span>
<a name="l776"><span class="linenum"> 776</span></a>  <span class="comment">        $log &gt; 1 &amp;&amp; self::log(&quot;{$errstr} {$errfile}&quot;, 'warning');</span>
<a name="l777"><span class="linenum"> 777</span></a>  <span class="comment">        if ($level &gt; 2) {</span>
<a name="l778"><span class="linenum"> 778</span></a>  <span class="comment">            IS_AJAX || $errstr = str_replace('\\', '\\\\', $errstr);</span>
<a name="l779"><span class="linenum"> 779</span></a>  <span class="comment">            self::$errs[$errno][] = &quot;{$errstr} {$errfile}&quot;;</span>
<a name="l780"><span class="linenum"> 780</span></a>  <span class="comment">        }</span>
<a name="l781"><span class="linenum"> 781</span></a>  <span class="comment">    }</span>
<a name="l782"><span class="linenum"> 782</span></a>  <span class="comment">    public static function GetJsonDebug($level = null)</span>
<a name="l783"><span class="linenum"> 783</span></a>  <span class="comment">    {</span>
<a name="l784"><span class="linenum"> 784</span></a>  <span class="comment">        null === $level &amp;&amp; $level = $GLOBALS['ZPHP_CONFIG']['DEBUG']['level'] ?? 0;</span>
<a name="l785"><span class="linenum"> 785</span></a>  <span class="comment">        if ($level) {</span>
<a name="l786"><span class="linenum"> 786</span></a>  <span class="comment">            $json['运行'] = [</span>
<a name="l787"><span class="linenum"> 787</span></a>  <span class="comment">                'SQL查询' =&gt; round(1000 * self::$pdotime, 3) . 'ms',</span>
<a name="l788"><span class="linenum"> 788</span></a>  <span class="comment">                '运行时间' =&gt; round(1000 * (microtime(true) - MTIME), 3) . 'ms',</span>
<a name="l789"><span class="linenum"> 789</span></a>  <span class="comment">                '内存使用' =&gt; FileSizeFormat(memory_get_usage()),</span>
<a name="l790"><span class="linenum"> 790</span></a>  <span class="comment">                '内存峰值' =&gt; FileSizeFormat(memory_get_peak_usage()),</span>
<a name="l791"><span class="linenum"> 791</span></a>  <span class="comment">            ];</span>
<a name="l792"><span class="linenum"> 792</span></a>  <span class="comment">        }</span>
<a name="l793"><span class="linenum"> 793</span></a>  <span class="comment">        if (2 &lt; $level) {</span>
<a name="l794"><span class="linenum"> 794</span></a>  <span class="comment">            is_file($file = $GLOBALS['ZPHP_MAPPING']['libs'] . 'view.class.php')</span>
<a name="l795"><span class="linenum"> 795</span></a>  <span class="comment">            &amp;&amp; (require $file)</span>
<a name="l796"><span class="linenum"> 796</span></a>  <span class="comment">            &amp;&amp; !class_exists('\libs\view', false)</span>
<a name="l797"><span class="linenum"> 797</span></a>  <span class="comment">            &amp;&amp; ($params = \libs\view::GetParams())</span>
<a name="l798"><span class="linenum"> 798</span></a>  <span class="comment">            &amp;&amp; self::$errs[1150] = $params;</span>
<a name="l799"><span class="linenum"> 799</span></a>  <span class="comment">            $json['文件'] = get_included_files();</span>
<a name="l800"><span class="linenum"> 800</span></a>  <span class="comment">            $json['环境'] = $_SERVER;</span>
<a name="l801"><span class="linenum"> 801</span></a>  <span class="comment">            $json['POST'] = $_POST;</span>
<a name="l802"><span class="linenum"> 802</span></a>  <span class="comment">            $json['常量'] = get_defined_constants(true)['user'];</span>
<a name="l803"><span class="linenum"> 803</span></a>  <span class="comment">            $json['配置'] = $GLOBALS['ZPHP_CONFIG'];</span>
<a name="l804"><span class="linenum"> 804</span></a>  <span class="comment">            $json['命名空间'] = $GLOBALS['ZPHP_MAPPING'];</span>
<a name="l805"><span class="linenum"> 805</span></a>  <span class="comment">        }</span>
<a name="l806"><span class="linenum"> 806</span></a>  <span class="comment">        if (1 &lt; $level) {</span>
<a name="l807"><span class="linenum"> 807</span></a>  <span class="comment">            foreach (self::$errs as $k =&gt; $v) {</span>
<a name="l808"><span class="linenum"> 808</span></a>  <span class="comment">                $json[self::ERRTYPE[$k]] = $v;</span>
<a name="l809"><span class="linenum"> 809</span></a>  <span class="comment">            }</span>
<a name="l810"><span class="linenum"> 810</span></a>  <span class="comment">        }</span>
<a name="l811"><span class="linenum"> 811</span></a>  <span class="comment">        return $json ?? null;</span>
<a name="l812"><span class="linenum"> 812</span></a>  <span class="comment">    }</span>
<a name="l813"><span class="linenum"> 813</span></a>  <span class="comment">    public static function ShowMsg()</span>
<a name="l814"><span class="linenum"> 814</span></a>  <span class="comment">    {</span>
<a name="l815"><span class="linenum"> 815</span></a>  <span class="comment">        if (!$level = $GLOBALS['ZPHP_CONFIG']['DEBUG']['level'] ?? 0) {</span>
<a name="l816"><span class="linenum"> 816</span></a>  <span class="comment">            die;</span>
<a name="l817"><span class="linenum"> 817</span></a>  <span class="comment">        }</span>
<a name="l818"><span class="linenum"> 818</span></a>  <span class="comment">        switch ($GLOBALS['ZPHP_CONFIG']['DEBUG']['type'] ?? '') {</span>
<a name="l819"><span class="linenum"> 819</span></a>  <span class="comment">            case 'html':</span>
<a name="l820"><span class="linenum"> 820</span></a>  <span class="comment">                self::ShowHtml($level);</span>
<a name="l821"><span class="linenum"> 821</span></a>  <span class="comment">                break;</span>
<a name="l822"><span class="linenum"> 822</span></a>  <span class="comment">            case 'json':</span>
<a name="l823"><span class="linenum"> 823</span></a>  <span class="comment">                self::ShowJson($level);</span>
<a name="l824"><span class="linenum"> 824</span></a>  <span class="comment">                break;</span>
<a name="l825"><span class="linenum"> 825</span></a>  <span class="comment">            default:</span>
<a name="l826"><span class="linenum"> 826</span></a>  <span class="comment">                IS_WX ? self::ShowHtml($level) : self::ShowJson($level);</span>
<a name="l827"><span class="linenum"> 827</span></a>  <span class="comment">                break;</span>
<a name="l828"><span class="linenum"> 828</span></a>  <span class="comment">        }</span>
<a name="l829"><span class="linenum"> 829</span></a>  <span class="comment">    }</span>
<a name="l830"><span class="linenum"> 830</span></a>  <span class="comment">    public static function ShowJson($level)</span>
<a name="l831"><span class="linenum"> 831</span></a>  <span class="comment">    {</span>
<a name="l832"><span class="linenum"> 832</span></a>  <span class="comment">        $json = json_encode(self::GetJsonDebug($level));</span>
<a name="l833"><span class="linenum"> 833</span></a>  <span class="comment">        die(&quot;&lt;script&gt;console.log({$json})&lt;/script&gt;&quot;);</span>
<a name="l834"><span class="linenum"> 834</span></a>  <span class="comment">    }</span>
<a name="l835"><span class="linenum"> 835</span></a>  <span class="comment">    public static function ShowHtml($level)</span>
<a name="l836"><span class="linenum"> 836</span></a>  <span class="comment">    {</span>
<a name="l837"><span class="linenum"> 837</span></a>  <span class="comment">        $runtime = microtime(true) - MTIME;</span>
<a name="l838"><span class="linenum"> 838</span></a>  <span class="comment">        $html = $tab = '';</span>
<a name="l839"><span class="linenum"> 839</span></a>  <span class="comment">        if (2 &lt; $level) {</span>
<a name="l840"><span class="linenum"> 840</span></a>  <span class="comment">            self::getConfigs();</span>
<a name="l841"><span class="linenum"> 841</span></a>  <span class="comment">            self::getServer();</span>
<a name="l842"><span class="linenum"> 842</span></a>  <span class="comment">            self::getConstants();</span>
<a name="l843"><span class="linenum"> 843</span></a>  <span class="comment">            self::getIncludeFiles();</span>
<a name="l844"><span class="linenum"> 844</span></a>  <span class="comment">            self::getMapping();</span>
<a name="l845"><span class="linenum"> 845</span></a>  <span class="comment">            self::getPost();</span>
<a name="l846"><span class="linenum"> 846</span></a>  <span class="comment">            self::getParams();</span>
<a name="l847"><span class="linenum"> 847</span></a>  <span class="comment">        }</span>
<a name="l848"><span class="linenum"> 848</span></a>  <span class="comment">        if (1 &lt; $level) {</span>
<a name="l849"><span class="linenum"> 849</span></a>  <span class="comment">            foreach (self::$errs as $k =&gt; $v) {</span>
<a name="l850"><span class="linenum"> 850</span></a>  <span class="comment">                $tab .= &quot;&lt;button type=\&quot;button\&quot; id=\&quot;{$k}\&quot; tid=\&quot;{$k}\&quot;&gt;&quot; . self::ERRTYPE[$k] . ':[' . count($v) . ']&lt;/button&gt;';</span>
<a name="l851"><span class="linenum"> 851</span></a>  <span class="comment">                $html .= &quot;&lt;div id=\&quot;zdebug-li{$k}\&quot;&gt;&lt;p&gt;# &quot; . implode('&lt;/p&gt;&lt;p&gt;# ', $v) . '&lt;/p&gt;&lt;/div&gt;';</span>
<a name="l852"><span class="linenum"> 852</span></a>  <span class="comment">            }</span>
<a name="l853"><span class="linenum"> 853</span></a>  <span class="comment">        }</span>
<a name="l854"><span class="linenum"> 854</span></a>  <span class="comment">        require P_CORE . 'tpl/debug.tpl';</span>
<a name="l855"><span class="linenum"> 855</span></a>  <span class="comment">        die;</span>
<a name="l856"><span class="linenum"> 856</span></a>  <span class="comment">    }</span>
<a name="l857"><span class="linenum"> 857</span></a>  <span class="comment">    private static function getIncludeFiles()</span>
<a name="l858"><span class="linenum"> 858</span></a>  <span class="comment">    {</span>
<a name="l859"><span class="linenum"> 859</span></a>  <span class="comment">        $files = get_included_files();</span>
<a name="l860"><span class="linenum"> 860</span></a>  <span class="comment">        foreach ($files as $v) {</span>
<a name="l861"><span class="linenum"> 861</span></a>  <span class="comment">            $file = str_replace('\\', '/', $v);</span>
<a name="l862"><span class="linenum"> 862</span></a>  <span class="comment">            self::$errs[1100][] = $file . '[ ' . FileSizeFormat(filesize($file)) . ' ]';</span>
<a name="l863"><span class="linenum"> 863</span></a>  <span class="comment">        }</span>
<a name="l864"><span class="linenum"> 864</span></a>  <span class="comment">    }</span>
<a name="l865"><span class="linenum"> 865</span></a>  <span class="comment">    private static function getMapping()</span>
<a name="l866"><span class="linenum"> 866</span></a>  <span class="comment">    {</span>
<a name="l867"><span class="linenum"> 867</span></a>  <span class="comment">        if (isset($GLOBALS['ZPHP_MAPPING'])) {</span>
<a name="l868"><span class="linenum"> 868</span></a>  <span class="comment">            foreach ($GLOBALS['ZPHP_MAPPING'] as $k =&gt; $v) {</span>
<a name="l869"><span class="linenum"> 869</span></a>  <span class="comment">                $path = str_replace('\\', '/', $v);</span>
<a name="l870"><span class="linenum"> 870</span></a>  <span class="comment">                self::$errs[1133][] = &quot;{$k}：$v&quot;;</span>
<a name="l871"><span class="linenum"> 871</span></a>  <span class="comment">            }</span>
<a name="l872"><span class="linenum"> 872</span></a>  <span class="comment">        }</span>
<a name="l873"><span class="linenum"> 873</span></a>  <span class="comment">    }</span>
<a name="l874"><span class="linenum"> 874</span></a>  <span class="comment">    private static function getConfigs()</span>
<a name="l875"><span class="linenum"> 875</span></a>  <span class="comment">    {</span>
<a name="l876"><span class="linenum"> 876</span></a>  <span class="comment">        foreach ($GLOBALS['ZPHP_CONFIG'] as $k =&gt; $v) {</span>
<a name="l877"><span class="linenum"> 877</span></a>  <span class="comment">            $str = htmlspecialchars(json_encode($v, 320));</span>
<a name="l878"><span class="linenum"> 878</span></a>  <span class="comment">            self::$errs[1132][] = &quot;[{$k}] : {$str}&quot;;</span>
<a name="l879"><span class="linenum"> 879</span></a>  <span class="comment">        }</span>
<a name="l880"><span class="linenum"> 880</span></a>  <span class="comment">    }</span>
<a name="l881"><span class="linenum"> 881</span></a>  <span class="comment">    private static function getParams()</span>
<a name="l882"><span class="linenum"> 882</span></a>  <span class="comment">    {</span>
<a name="l883"><span class="linenum"> 883</span></a>  <span class="comment">        if (!$params = view::GetParams()) {</span>
<a name="l884"><span class="linenum"> 884</span></a>  <span class="comment">            return false;</span>
<a name="l885"><span class="linenum"> 885</span></a>  <span class="comment">        }</span>
<a name="l886"><span class="linenum"> 886</span></a>  <span class="comment"></span>
<a name="l887"><span class="linenum"> 887</span></a>  <span class="comment">        foreach ($params as $k =&gt; $v) {</span>
<a name="l888"><span class="linenum"> 888</span></a>  <span class="comment">            $str = htmlspecialchars(json_encode($v, 320));</span>
<a name="l889"><span class="linenum"> 889</span></a>  <span class="comment">            self::$errs[1150][] = &quot;\${$k} : {$str}&quot;;</span>
<a name="l890"><span class="linenum"> 890</span></a>  <span class="comment">        }</span>
<a name="l891"><span class="linenum"> 891</span></a>  <span class="comment">    }</span>
<a name="l892"><span class="linenum"> 892</span></a>  <span class="comment">    private static function getPost()</span>
<a name="l893"><span class="linenum"> 893</span></a>  <span class="comment">    {</span>
<a name="l894"><span class="linenum"> 894</span></a>  <span class="comment">        if ($_POST) {</span>
<a name="l895"><span class="linenum"> 895</span></a>  <span class="comment">            foreach ($_POST as $k =&gt; $v) {</span>
<a name="l896"><span class="linenum"> 896</span></a>  <span class="comment">                $str = htmlspecialchars(json_encode($v, 320));</span>
<a name="l897"><span class="linenum"> 897</span></a>  <span class="comment">                self::$errs[1160][] = &quot;[{$k}] : {$str}&quot;;</span>
<a name="l898"><span class="linenum"> 898</span></a>  <span class="comment">            }</span>
<a name="l899"><span class="linenum"> 899</span></a>  <span class="comment">        }</span>
<a name="l900"><span class="linenum"> 900</span></a>  <span class="comment">    }</span>
<a name="l901"><span class="linenum"> 901</span></a>  <span class="comment">    private static function getConstants()</span>
<a name="l902"><span class="linenum"> 902</span></a>  <span class="comment">    {</span>
<a name="l903"><span class="linenum"> 903</span></a>  <span class="comment">        $const = get_defined_constants(true)['user'];</span>
<a name="l904"><span class="linenum"> 904</span></a>  <span class="comment">        foreach ($const as $k =&gt; $v) {</span>
<a name="l905"><span class="linenum"> 905</span></a>  <span class="comment">            $str = htmlspecialchars(json_encode($v, 320));</span>
<a name="l906"><span class="linenum"> 906</span></a>  <span class="comment">            self::$errs[1131][] = &quot;[{$k}] : {$str}&quot;;</span>
<a name="l907"><span class="linenum"> 907</span></a>  <span class="comment">        }</span>
<a name="l908"><span class="linenum"> 908</span></a>  <span class="comment">    }</span>
<a name="l909"><span class="linenum"> 909</span></a>  <span class="comment">    private static function getServer()</span>
<a name="l910"><span class="linenum"> 910</span></a>  <span class="comment">    {</span>
<a name="l911"><span class="linenum"> 911</span></a>  <span class="comment">        foreach ($_SERVER as $k =&gt; $v) {</span>
<a name="l912"><span class="linenum"> 912</span></a>  <span class="comment">            $str = htmlspecialchars(json_encode($v, 320));</span>
<a name="l913"><span class="linenum"> 913</span></a>  <span class="comment">            self::$errs[1130][] = &quot;[{$k}] : {$str}&quot;;</span>
<a name="l914"><span class="linenum"> 914</span></a>  <span class="comment">        }</span>
<a name="l915"><span class="linenum"> 915</span></a>  <span class="comment">    }</span>
<a name="l916"><span class="linenum"> 916</span></a>  <span class="comment">}</span>
</pre>
</div>
<script language="JavaScript" type="text/javascript">
FUNC_DATA={
'init': ['init', '', [['core/v0.1/ext','db.class.php',36],['core/v0.1/z','pdo.class.php',12],['core/v0.1/z','z.class.php',154]], 6],
'u2': ['u2', '', [['core/v0.1/z','z.class.php',509]], 1],
'getpathinfo': ['getpathinfo', '', [['core/v0.1/z','z.class.php',235]], 1],
'url': ['url', '', [['core/v0.1/z','z.class.php',562]], 6],
'route': ['route', '', [['core/v0.1/z','z.class.php',626]], 2],
'setconfig': ['setconfig', '', [['core/v0.1','core.php',84],['core/v0.1/z','z.class.php',100]], 1],
'setver': ['setver', '', [['core/v0.1/z','z.class.php',319]], 1],
'defaultroute': ['defaultroute', '', [['core/v0.1/z','z.class.php',583]], 2],
'autoload': ['autoload', '', [['core/v0.1/z','z.class.php',55]], 0],
'start': ['start', '', [['core/v0.1/z','z.class.php',6]], 1],
'pathinfo2arr': ['pathinfo2arr', '', [['core/v0.1/z','z.class.php',603]], 2],
'getappname': ['getappname', '', [['core/v0.1/z','z.class.php',307]], 1],
'pathinforoute': ['pathinforoute', '', [['core/v0.1/z','z.class.php',613]], 2],
'json': ['json', '', [['core/v0.1/z','z.class.php',701]], 2],
'setsession': ['setsession', '', [['core/v0.1/z','z.class.php',29]], 1],
'loadmapping': ['loadmapping', '', [['core/v0.1/z','z.class.php',108]], 1],
'getuf': ['getuf', '', [['core/v0.1/z','z.class.php',380]], 3],
'getver': ['getver', '', [['core/v0.1/z','z.class.php',274]], 4],
'router': ['router', '', [['core/v0.1/z','z.class.php',245]], 3],
'u0': ['u0', '', [['core/v0.1/z','z.class.php',457]], 1],
'_404': ['_404', '', [['base','ctrl.class.php',4],['core/v0.1/z','z.class.php',670]], 3],
'setinput': ['setinput', '', [['core/v0.1/z','z.class.php',122]], 1],
'u1': ['u1', '', [['core/v0.1/z','z.class.php',485]], 2],
'getmodulerouter': ['getmodulerouter', '', [['core/v0.1/z','z.class.php',256]], 2],
'getconfig': ['getconfig', '', [['core/v0.1/z','pdo.class.php',68],['core/v0.1/z','z.class.php',104]], 1],
'sessionstart': ['sessionstart', '', [['core/v0.1/z','z.class.php',36]], 1],
'loadfunctions': ['loadfunctions', '', [['core/v0.1/z','z.class.php',89]], 1],
'loadconfig': ['loadconfig', '', [['core/v0.1/z','z.class.php',80]], 3],
'showmsg': ['showmsg', '', [['core/v0.1/z','z.class.php',813]], 1],
'format': ['format', '', [['core/v0.1/z','z.class.php',345]], 2],
'getinpath': ['getinpath', '', [['core/v0.1/z','z.class.php',440]], 2],
'getismodule': ['getismodule', '', [['core/v0.1/z','z.class.php',286]], 1],
'headers_sent': ['headers_sent', '', [], 1],
'http_build_query': ['http_build_query', '', [], 3],
'file_exists': ['file_exists', '', [], 11],
'parse_str': ['parse_str', '', [], 1],
'substr': ['substr', '', [], 7],
'explode': ['explode', '', [], 14],
'is_array': ['is_array', '', [], 34],
'strtolower': ['strtolower', '', [], 7],
'method_exists': ['method_exists', '', [], 5],
'is_file': ['is_file', '', [], 39],
'array_shift': ['array_shift', '', [], 7],
'setcookie': ['setcookie', '', [], 1],
'array_pop': ['array_pop', '', [], 4],
'ini_set': ['ini_set', '', [], 7],
'implode': ['implode', '', [], 20],
'strpos': ['strpos', '', [], 11],
'count': ['count', '', [], 14],
'trim': ['trim', '', [], 17],
'class_exists': ['class_exists', '', [], 2],
'defined': ['defined', '', [], 5],
'preg_match': ['preg_match', '', [], 12],
'file_get_contents': ['file_get_contents', '', [], 4],
'session_name': ['session_name', '', [], 1],
'define': ['define', '', [], 74],
'str_replace': ['str_replace', '', [], 16],
'session_start': ['session_start', '', [], 1],
'array_chunk': ['array_chunk', '', [], 1],
'header': ['header', '', [], 6]};
CLASS_DATA={
'debug': ['debug', '', [['core/v0.1/z','z.class.php',708]], 10],
'z': ['z', '', [['core/v0.1/z','z.class.php',4]], 6],
'router': ['router', '', [['core/v0.1/z','z.class.php',144]], 6],
'ctrl': ['ctrl', '', [['base','ctrl.class.php',3],['core/v0.1/z','z.class.php',668]], 8]};
CONST_DATA={
'APP_NAME': ['APP_NAME', '', [['public','index.php',2]], 19],
'P_RES_APP': ['P_RES_APP', '', [['core/v0.1','core.php',46]], 2],
'P_CACHE': ['P_CACHE', '', [['core/v0.1','core.php',31]], 9],
'P_RUN_MODULE': ['P_RUN_MODULE', '', [['core/v0.1/z','z.class.php',205]], 2],
'U_RES_APP': ['U_RES_APP', '', [['core/v0.1','core.php',48]], 4],
'U_RES_VER': ['U_RES_VER', '', [['core/v0.1/z','z.class.php',162]], 1],
'P_APP': ['P_APP', '', [['core/v0.1','core.php',32]], 7],
'PHP_FILE': ['PHP_FILE', '', [['core/v0.1','core.php',14]], 2],
'P_RES_MODULE': ['P_RES_MODULE', '', [['core/v0.1/z','z.class.php',204]], 2],
'P_THEME_APP': ['P_THEME_APP', '', [['core/v0.1/z','z.class.php',166]], 2],
'P_RES_': ['P_RES_', '', [['core/v0.1/z','z.class.php',210],['core/v0.1/z','z.class.php',224]], 2],
'P_HTML_VER': ['P_HTML_VER', '', [['core/v0.1/z','z.class.php',342]], 1],
'P_VIEW_APP': ['P_VIEW_APP', '', [['core/v0.1/z','z.class.php',165]], 3],
'VER': ['VER', '', [['core/v0.1/z','z.class.php',322],['core/v0.1/z','z.class.php',324],['core/v0.1/z','z.class.php',327],['core/v0.1/z','z.class.php',329]], 29],
'P_RUN_': ['P_RUN_', '', [['core/v0.1/z','z.class.php',211],['core/v0.1/z','z.class.php',225]], 3],
'P_MODULE': ['P_MODULE', '', [['core/v0.1/z','z.class.php',203]], 7],
'P_THEME_MODULE': ['P_THEME_MODULE', '', [['core/v0.1/z','z.class.php',216]], 2],
'P_COMMON': ['P_COMMON', '', [['core/v0.1','core.php',33]], 5],
'P_CACHE_APP': ['P_CACHE_APP', '', [['core/v0.1','core.php',36]], 2],
'U_RES': ['U_RES', '', [['core/v0.1','core.php',47]], 3],
'P_CACHE_MODULE': ['P_CACHE_MODULE', '', [['core/v0.1/z','z.class.php',207]], 2],
'P_RES': ['P_RES', '', [['core/v0.1','core.php',45]], 3],
'P_THEME_': ['P_THEME_', '', [['core/v0.1/z','z.class.php',217],['core/v0.1/z','z.class.php',230]], 7],
'P_HTML': ['P_HTML', '', [['core/v0.1','core.php',30]], 4],
'P_VIEW_MODULE': ['P_VIEW_MODULE', '', [['core/v0.1/z','z.class.php',214]], 3],
'ROUTE': ['ROUTE', '', [['core/v0.1/z','z.class.php',232]], 29],
'P_RUN_APP': ['P_RUN_APP', '', [['core/v0.1','core.php',34]], 2],
'P_APP_VER': ['P_APP_VER', '', [['core/v0.1/z','z.class.php',325],['core/v0.1/z','z.class.php',336]], 14],
'P_IN': ['P_IN', '', [['core/v0.1','core.php',23]], 8],
'P_CACHE_': ['P_CACHE_', '', [['core/v0.1/z','z.class.php',213],['core/v0.1/z','z.class.php',227]], 3],
'U_ROOT': ['U_ROOT', '', [['core/v0.1','core.php',15]], 6],
'U_RES_': ['U_RES_', '', [['core/v0.1/z','z.class.php',209],['core/v0.1/z','z.class.php',228]], 2],
'TPL_EXT': ['TPL_EXT', '', [['core/v0.1/z','z.class.php',163]], 5],
'P_ROOT': ['P_ROOT', '', [['core/v0.1','core.php',25]], 22],
'P_RUN_VER': ['P_RUN_VER', '', [['core/v0.1/z','z.class.php',341]], 1],
'P_CACHE_VER': ['P_CACHE_VER', '', [['core/v0.1/z','z.class.php',343]], 1],
'DATA': ['DATA', '', [['core/v0.1/z','z.class.php',140]], 2],
'P_HTML_': ['P_HTML_', '', [['core/v0.1/z','z.class.php',212],['core/v0.1/z','z.class.php',226]], 4],
'P_RES_VER': ['P_RES_VER', '', [['core/v0.1/z','z.class.php',340]], 1],
'P_HTML_APP': ['P_HTML_APP', '', [['core/v0.1','core.php',35]], 2],
'U_RES_MODULE': ['U_RES_MODULE', '', [['core/v0.1/z','z.class.php',208]], 2],
'P_VIEW_': ['P_VIEW_', '', [['core/v0.1/z','z.class.php',215],['core/v0.1/z','z.class.php',229]], 2],
'THEME': ['THEME', '', [['core/v0.1/z','z.class.php',164]], 6],
'P_PUBLIC': ['P_PUBLIC', '', [['core/v0.1','core.php',39],['core/v0.1','core.php',42]], 4],
'U_HOME': ['U_HOME', '', [['core/v0.1','core.php',16]], 7],
'P_RUN': ['P_RUN', '', [['core/v0.1','core.php',29]], 4],
'P_HTML_MODULE': ['P_HTML_MODULE', '', [['core/v0.1/z','z.class.php',206]], 2]};
</script>
<div id="func-popup" class="funcpopup"><p id="func-title" class="popup-title">title</p><p id="func-desc" class="popup-desc">Description</p><p id="func-body" class="popup-body">Body</p></div>
<div id="class-popup" class="funcpopup"><p id="class-title" class="popup-title">title</p><p id="class-desc" class="popup-desc">Description</p><p id="class-body" class="popup-body">Body</p></div>
<div id="const-popup" class="funcpopup"><p id="const-title" class="popup-title">title</p><p id="const-desc" class="popup-desc">Description</p><p id="const-body" class="popup-body">Body</p></div>
<div id="req-popup" class="funcpopup"><p id="req-title" class="popup-title">title</p><p id="req-body" class="popup-body">Body</p></div>
<!-- A link to the phpxref site in your customized footer file is appreciated ;-) -->
<br><hr>
<table width="100%">
	<tr><td>Generated: Thu Sep 10 15:54:52 2020</td>
	<td align="right"><i>Cross-referenced by <a href="http://phpxref.sourceforge.net/">PHPXref 0.7.1</a></i></td>
	</tr>
</table>
</body></html>
